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

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:

Zajímavé články...