Funkce wctomb () v C ++ převádí široký znak na vícebajtový znak.
Funkce wctomb () je definována v hlavičkovém souboru.
prototyp wctomb ()
int wctomb (char * pmb, wchar_t wc);
Funkce wctomb () trvá dva argumenty a vrací celočíselnou hodnotu. Tato funkce převádí široký znak představovaný wc na jeho vícebajtový ekvivalent a je uložena na paměťovém místě, na které ukazuje pmb. Maximální počet znaků, které lze uložit, je MB_CUR_MAX .
Pokud wc je znak null, null bajt se zapíše do pmb.
Pokud pmb je nulový ukazatel, volání wctomb () resetuje stav globální konverze a určuje, zda se použijí posloupné sekvence.
Parametry wctomb ()
- pmb: Ukazatel na výsledný vícebajtový znak
- wc: Široký znak převedený na vícebajtový znak
wctomb () Vrátit hodnotu
Pokud pmb není nulovým ukazatelem, vrátí wctomb ():
- počet bytů, které jsou obsaženy ve vícebajtové reprezentaci wc.
- -1, pokud wc není platný znak.
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 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); )
Při spuštění programu bude možný výstup:
Když pmb není null Návratová hodnota = 1 vícebajtový znak: x↨R Když pmb je null Návratová hodnota = 0 vícebajtový znak: