C ++ mbtowc () - štandardná knižnica C ++

Funkcia mbtowc () v C ++ prevádza viacbajtový znak na široký znak.

Funkcia mbtwoc () je definovaná v hlavičkovom súbore.

prototyp mbtowc ()

 int mbtowc (wchar_t * pwc, const char * pmb, size_t max);

Funkcia mbtowc () má tri argumenty a vráti celočíselnú hodnotu. Táto funkcia prevádza viacbajtový znak označený pomocou pmb na široký znak (hodnota typu wchar_t) a je uložená v pamäťovom mieste označenom pwc.

Ak je pmb nulový ukazovateľ, volanie mbtowc () vynuluje stav globálnej konverzie a určí, či sa použijú sekvencie posunu.

mbtowc () parametre

  • pwc: Ukazovateľ na výsledný široký znak
  • pmb: Ukazovateľ na viacbajtový znak, ktorý sa prevedie na široký znak
  • max: Maximálna veľkosť v bajtoch pmb, ktorá sa má zohľadniť pre viacbajtový znak.

mbtowc () Vrátená hodnota

Ak pmb nie je nulový ukazovateľ, mbtowc () vráti:

  • počet bajtov, ktoré sú obsiahnuté vo viacbajtovom znaku označenom pmb.
  • -1, ak prvý bajt označený pmb netvorí platný viacbajtový znak.
  • 0, ak pmb ukazuje na koncový prázdny znak, tj „ 0“.

Ak je pmb nulový ukazovateľ, obnoví svoj interný stav konverzie tak, aby predstavoval počiatočný stav posunu, a vráti:

  • 0, ak súčasné viacbajtové kódovanie nezávisí od stavu (nepoužíva posúvacie sekvencie)
  • nenulová hodnota, ak je súčasné viacbajtové kódovanie závislé od stavu (používa sekvencie posunu).

Príklad: Ako funguje funkcia 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); )

Po spustení programu bude možný výstup:

 Návratová hodnota = 1 Širokoúhly reťazec znakov: W @

Zaujímavé články...