Funktionen mbtowc () i C ++ konverterer et multibyttegn til et bredt tegn.
Funktionen mbtwoc () er defineret i headerfilen.
mbtowc () prototype
int mbtowc (wchar_t * pwc, const char * pmb, size_t max);
Funktionen mbtowc () tager tre argumenter og returnerer en heltalværdi. Denne funktion konverterer multibyttegnet peget af pmb til et bredt tegn (værdi af typen wchar_t) og lagres på det hukommelsessted, der peges af pwc.
Hvis pmb er en nulmarkør, nulstiller et opkald til mbtowc () den globale konverteringstilstand og bestemmer, om skiftesekvenser bruges.
mbtowc () Parametre
- pwc: Markør til den resulterende brede karakter
- pmb: Markør til multibyttegnet, der konverteres til bred karakter
- max: Maksimal størrelse i byte på pmb, der skal tages i betragtning for multibyttegnet.
mbtowc () Returværdi
Hvis pmb ikke er en nul pointer, returnerer mbtowc ():
- antallet af byte, der er indeholdt i multibyttegnet peget af pmb.
- -1 hvis den første byte peget af pmb ikke danner et gyldigt multibyttegn.
- 0 hvis pmb peger på det afsluttende null-tegn, dvs. ' 0'.
Hvis pmb er en nul pointer, nulstiller dens interne konverteringstilstand for at repræsentere den oprindelige skifttilstand og returnerer:
- 0, hvis den aktuelle multibyte-kodning ikke er tilstandsafhængig (bruger ikke shift-sekvenser)
- en værdi, der ikke er nul, hvis den aktuelle multibytkodning er tilstandsafhængig (bruger shift-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 kører programmet, vil en mulig output være:
Returværdi = 1 bred tegnstreng: W @