C ++ mbtowc () - C ++ Standardbibliotek

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 @

Interessante artikler...