C ++ mbtowc () - C ++ szabványos könyvtár

A mbtowc () függvény a C ++ nyelven egy többbájtos karaktert széles karakterré alakít.

Az mbtwoc () függvény a fejlécfájlban van meghatározva.

mbtowc () prototípus

 int mbtowc (wchar_t * pwc, const char * pmb, méret_t max);

Az mbtowc () függvény három argumentumot vesz fel, és egy egész értéket ad vissza. Ez a függvény a pmb által mutatott multibyte karaktert széles karakterré konvertálja (wchar_t típusú érték), és a pwc által jelzett memóriahelyen tárolódik.

Ha a pmb null mutató, akkor az mbtowc () hívása visszaállítja a globális konverziós állapotot, és meghatározza, hogy használnak-e eltolási szekvenciákat.

mbtowc () Paraméterek

  • pwc: A kapott széles karakter mutatója
  • pmb: A többbájtos karakter mutatója, amely széles karakterré konvertálódik
  • max: A többbájtos karakternél figyelembe veendő maximális méret bájt MB-ban.

mbtowc () Visszatérési érték

Ha a pmb nem null mutató, akkor az mbtowc () a következőt adja vissza:

  • azoknak a bájtoknak a száma, amelyek a pmb által mutatott multibyte karakterben találhatók.
  • -1, ha a pmb által mutatott első bájt nem képez érvényes többbájtos karaktert.
  • 0, ha a pmb a végződő null karakterre mutat, azaz ' 0'.

Ha a pmb null mutató, akkor visszaállítja a belső konverziós állapotot a kezdeti váltási állapot képviseletére, és visszaadja:

  • 0, ha az aktuális többbájtos kódolás nem állapotfüggő (nem használ eltolási szekvenciákat)
  • nem nulla érték, ha az aktuális többbájtos kódolás állapotfüggő (eltolási szekvenciákat használ).

Példa: Hogyan működik az mbtowc () függvény?

 #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); )

A program futtatásakor egy lehetséges kimenet lesz:

 Visszaérték = 1 Széles karakterlánc: W @

érdekes cikkek...