C ++ mbtowc () - standardní knihovna C ++

Funkce mbtowc () v C ++ převádí vícebajtový znak na široký znak.

Funkce mbtwoc () je definována v hlavičkovém souboru.

prototyp mbtowc ()

 int mbtowc (wchar_t * pwc, const char * pmb, size_t max);

Funkce mbtowc () trvá tři argumenty a vrací celočíselnou hodnotu. Tato funkce převádí vícebajtový znak označený pmb na široký znak (hodnota typu wchar_t) a je uložena na paměťovém místě označeném pwc.

Pokud pmb je nulový ukazatel, volání mbtowc () resetuje stav globální konverze a určuje, zda se použijí posloupné sekvence.

mbtowc () parametry

  • pwc: Ukazatel na výsledný široký znak
  • pmb: Ukazatel na vícebajtový znak, který je převeden na široký znak
  • max: Maximální velikost v bajtech pmb pro vícebajtový znak.

mbtowc () Návratová hodnota

Pokud pmb není nulovým ukazatelem, vrátí mbtowc ():

  • počet bytů, které jsou obsaženy ve vícebajtovém znaku, na který ukazuje pmb.
  • -1, pokud první bajt označený pmb netvoří platný vícebajtový znak.
  • 0, pokud pmb ukazuje na ukončovací prázdný znak, tj. „ 0“.

Pokud pmb je nulový ukazatel, resetuje svůj interní stav převodu, aby představoval počáteční stav posunu, a vrátí:

  • 0, pokud aktuální vícebajtové kódování není závislé na stavu (nepoužívá sekvence posunu)
  • nenulová hodnota, pokud je aktuální vícebajtové kódování závislé na stavu (používá posloupné sekvence).

Příklad: Jak funguje funkce 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); )

Při spuštění programu bude možný výstup:

 Návratová hodnota = 1 Řetězec širokých znaků: W @

Zajímavé články...