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 @