Funksjonen mbtowc () i C ++ konverterer et multibyte-tegn til et bredt tegn.
Funksjonen mbtwoc () er definert i topptekstfilen.
mbtowc () prototype
int mbtowc (wchar_t * pwc, const char * pmb, size_t max);
Funksjonen mbtowc () tar tre argumenter og returnerer en heltallverdi. Denne funksjonen konverterer multibyttegnet som er pekt av pmb til et bredt tegn (verdi av typen wchar_t) og lagres på minneplasseringen pekt av pwc.
Hvis pmb er en nullpeker, vil et anrop til mbtowc () nullstille den globale konverteringstilstanden og bestemme om skiftesekvenser skal brukes.
mbtowc () Parametere
- pwc: peker til den resulterende brede karakteren
- pmb: peker til multibyte-tegnet som konverteres til bred karakter
- maks: Maksimal størrelse i byte på pmb for å ta hensyn til multibyte-tegnet.
mbtowc () Returverdi
Hvis pmb ikke er en nullpeker, returnerer mbtowc ():
- antall byte som er inneholdt i multibyte-tegnet pekt av pmb.
- -1 hvis den første byten pekt av pmb ikke danner et gyldig multibyttegn.
- 0 hvis pmb peker på det avsluttende nulltegnet, dvs. ' 0'.
Hvis pmb er en nullpeker, tilbakestiller den interne konverteringstilstanden til å representere den opprinnelige skifttilstanden og returnerer:
- 0 hvis den nåværende multibytekodingen ikke er avhengig av staten (bruker ikke skiftingssekvenser)
- en verdi som ikke er null, hvis den nåværende multibytekodingen er tilstandsavhengig (bruker skift-sekvenser).
Eksempel: Hvordan fungerer mbtowc ()?
#include #include #include using namespace std; int main() ( char pmb() = "Welcome to Programiz.com"; wchar_t pwc(100); int len, ret_val; /* resets internal conversion state */ mbtowc (NULL, NULL, 0); len = strlen(pmb); ret_val = mbtowc(pwc, pmb, strlen(pmb)); cout << "Return Value = " << ret_val << endl; wcout << "Wide character string: " << pwc; return(0); )
Når du kjører programmet, vil en mulig utgang være:
Returverdi = 1 bred tegnstreng: W @