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 @