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

Funkce wcrtomb () v C ++ převádí široký znak na jeho úzkou vícebajtovou reprezentaci.

Wcrtomb () je definován v hlavičkovém souboru.

prototyp wcrtomb ()

 size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);

Funkce wcrtomb () převádí široký znak představovaný wc na úzký vícebajtový znak a je uložena na adrese, na kterou ukazuje s.

  • Pokud s není nulovým ukazatelem, určuje funkce wcrtomb () maximální počet bajtů potřebných k uložení vícebajtové reprezentace wc a uloží ji do umístění paměti, na které ukazuje s. Lze zapsat maximálně MB_CUR_MAX bajtů. Hodnota ps se podle potřeby aktualizuje.
  • Pokud s je nulový ukazatel, volání je ekvivalentní wcrtomb(buf, L'', ps)pro nějakou vnitřní vyrovnávací paměť buf.
  • Pokud wc == L''je uložen nulový bajt.

Parametry wcrtomb ()

  • s: Ukazatel na vícebajtové pole znaků pro uložení výsledku.
  • wc: Široký znak pro převod.
  • ps: Ukazatel na stav převodu použitý při interpretaci vícebajtového řetězce

wcrtomb () Návratová hodnota

  • Při úspěchu funkce wcrtomb () vrací počet bajtů zapsaných do pole znaků, na jehož první prvek odkazuje s.
  • Při selhání (tj. Wc není platný široký znak) vrátí -1, errno je nastaveno na EILSEQ a ponechá * ps v nespecifikovaném stavu.

Příklad: Jak funguje funkce wcrtomb ()?

 #include #include #include using namespace std; int main() ( setlocale(LC_ALL, "en_US.utf8"); wchar_t str() = L"uu00c6u00f5u01b5"; char s(16); int retVal; mbstate_t ps = mbstate_t(); for (int i=0; i 

When you run the program, the output will be:

 Size of u is 1 bytes Size of Æ is 2 bytes Size of õ is 2 bytes Size of Ƶ is 2 bytes

Zajímavé články...