De mbtowc () -functie in C ++ converteert een multibyte-teken naar een breed teken.
De mbtwoc () -functie is gedefinieerd in het header-bestand.
mbtowc () prototype
int mbtowc (wchar_t * pwc, const char * pmb, size_t max);
De functie mbtowc () heeft drie argumenten en retourneert een geheel getal. Deze functie converteert het multibyte-teken aangeduid met pmb naar een breed teken (waarde van het type wchar_t) en wordt opgeslagen op de geheugenlocatie die wordt aangegeven door pwc.
Als pmb een null-pointer is, zal een aanroep naar mbtowc () de globale conversiestatus resetten en bepalen of shift-sequenties worden gebruikt.
mbtowc () Parameters
- pwc: Pointer naar het resulterende brede teken
- pmb: Pointer naar het multibyte-teken dat wordt geconverteerd naar een breed teken
- max: maximale grootte in bytes van pmb waarmee rekening moet worden gehouden voor het multibyte-teken.
mbtowc () Retourwaarde
Als pmb geen null-pointer is, retourneert mbtowc ():
- het aantal bytes dat is vervat in het multibyte-teken aangeduid met pmb.
- -1 als de eerste byte aangewezen door pmb geen geldig multibyte-teken vormt.
- 0 als pmb naar het afsluitende null-teken verwijst, dwz ' 0'.
Als pmb een null-pointer is, wordt de interne conversiestatus opnieuw ingesteld om de oorspronkelijke shift-status weer te geven en retourneert:
- 0 als de huidige multibyte-codering niet toestandsafhankelijk is (gebruikt geen shift-sequenties)
- een niet-nulwaarde als de huidige multibyte-codering toestandsafhankelijk is (gebruikt shiftsequenties).
Voorbeeld: hoe mbtowc () functie werkt?
#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); )
Wanneer u het programma uitvoert, is een mogelijke uitvoer:
Retourwaarde = 1 brede tekenreeks: W @