Funkcija wctomb () u C ++ pretvara široki znak u višebajtni znak.
Funkcija wctomb () definirana je u zaglavnoj datoteci.
prototip wctomb ()
int wctomb (char * pmb, wchar_t wc);
Funkcija wctomb () uzima dva argumenta i vraća cjelobrojnu vrijednost. Ova funkcija pretvara široki znak predstavljen wc u njegov multibajtni ekvivalent i pohranjuje se na memorijsko mjesto koje pokazuje pmb. Maksimalan broj znakova koji se mogu pohraniti je MB_CUR_MAX .
Ako je wc nulti znak, nulti bajt se zapisuje u pmb.
Ako je pmb nulti pokazivač, poziv na wctomb () vratit će globalno stanje pretvorbe i odrediti koriste li se sljedovi sljedova.
wctomb () parametri
- pmb: pokazivač na rezultirajući višebajtni znak
- wc: Široki znak koji se pretvara u višebajtni znak
wctomb () Povratna vrijednost
Ako pmb nije null pokazivač, wctomb () vraća:
- broj bajtova sadržanih u višbajtnom prikazu wc.
- -1 ako wc nije valjani znak.
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 wctomb ()?
#include #include using namespace std; int main() ( wchar_t wc = L'x'; char *pmb1 = (char*)malloc(sizeof(char)); char *pmb2 = NULL; int ret_val; cout << "When pmb is not null" << endl; ret_val = wctomb(pmb1, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb1 << endl << endl; cout << "When pmb is null" << endl; ret_val = wctomb(pmb2, wc); cout << "Return Value = " << ret_val << endl; wcout << "Multibyte Character: " << pmb2; return(0); )
Kada pokrenete program, mogući izlaz bit će:
Kada pmb nije nula Povratna vrijednost = 1 multibajtni znak: x↨R Kada je pmb null Povratna vrijednost = 0 Višebajtni znak: