C ++ wctomb () - štandardná knižnica C ++

Funkcia wctomb () v C ++ prevádza široký znak na viacbajtový znak.

Funkcia wctomb () je definovaná v hlavičkovom súbore.

prototyp wctomb ()

 int wctomb (char * pmb, wchar_t wc);

Funkcia wctomb () má dva argumenty a vráti celočíselnú hodnotu. Táto funkcia prevádza široký znak predstavovaný wc na jeho viacbajtový ekvivalent a je uložená v mieste pamäte označenom pmb. Maximálny počet znakov, ktoré je možné uložiť, je MB_CUR_MAX .

Ak wc je nulový znak, nulový bajt sa zapíše do pmb.

Ak je pmb nulový ukazovateľ, volanie funkcie wctomb () vynuluje stav globálnej konverzie a určí, či sa použijú sekvencie posunu.

Parametre wctomb ()

  • pmb: Ukazovateľ na výsledný viacbajtový znak
  • wc: Široký znak, ktorý sa prevedie na viacbajtový znak

wctomb () Vrátená hodnota

Ak pmb nie je nulový ukazovateľ, vráti wctomb ():

  • počet bajtov, ktoré sú obsiahnuté vo viacbajtovej reprezentácii wc.
  • -1, ak wc nie je platný znak.

Ak je pmb nulový ukazovateľ, obnoví svoj interný stav konverzie tak, aby predstavoval počiatočný stav posunu, a vráti:

  • 0, ak súčasné viacbajtové kódovanie nezávisí od stavu (nepoužíva posúvacie sekvencie)
  • nenulová hodnota, ak je súčasné viacbajtové kódovanie závislé od stavu (používa sekvencie posunu).

Príklad: Ako funguje funkcia 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); )

Po spustení programu bude možný výstup:

 Keď pmb nemá hodnotu null Návratová hodnota = 1 viacbajtový znak: x↨R Keď pmb má hodnotu null Návratová hodnota = 0 viacbajtový znak:

Zaujímavé články...