C ++ mbtowc () - C ++ standaardbibliotheek

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 @

Interessante artikelen...