Funkcija mbtowc () u C ++ pretvara multibajtni znak u široki znak.
Funkcija mbtwoc () definirana je u zaglavnoj datoteci.
mbtowc () prototip
int mbtowc (wchar_t * pwc, const char * pmb, size_t max);
Funkcija mbtowc () uzima tri argumenta i vraća cjelobrojnu vrijednost. Ova funkcija pretvara višebajtni znak na koji pokazuje pmb u široki znak (vrijednost tipa wchar_t) i pohranjuje se na memorijsko mjesto na koje pokazuje pwc.
Ako je pmb null pokazivač, poziv mbtowc () resetirat će globalno stanje pretvorbe i odrediti koriste li se sljedovi sljedova.
mbtowc () Parametri
- pwc: Pokazivač na rezultirajući široki znak
- pmb: pokazivač na višebajtni znak koji se pretvara u široki znak
- max: maksimalna veličina u bajtovima pmb-a koja se uzima u obzir za višebajtni znak.
mbtowc () Povratna vrijednost
Ako pmb nije null pokazivač, mbtowc () vraća:
- broj bajtova sadržanih u višebajtnom znaku označenom pmb.
- -1 ako prvi bajt na koji ukazuje pmb ne tvori valjani višebajtni znak.
- 0 ako pmb pokazuje na završni null znak tj. 0.
Ako je pmb null pokazivač, resetira svoje unutarnje stanje pretvorbe da predstavlja početno stanje pomaka i vraća:
- 0 ako trenutačno višebajtno kodiranje ne ovisi o stanju (ne koristi sekvence pomaka)
- vrijednost koja nije nula ako je trenutno višebajtno kodiranje ovisno o stanju (koristi sekvence pomaka).
Primjer: Kako funkcionira funkcija 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); )
Kada pokrenete program, mogući izlaz bit će:
Povratna vrijednost = 1 Široki niz znakova: W @