Funkcia wcrtomb () v C ++ prevádza široký znak na úzke viacbajtové zastúpenie.
Wcrtomb () je definované v hlavičkovom súbore.
prototyp wcrtomb ()
size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);
Funkcia wcrtomb () prevádza široký znak predstavovaný wc na úzky viacbajtový znak a je uložená na adrese, na ktorú odkazuje s.
- Ak s nie je nulový ukazovateľ, funkcia wcrtomb () určuje maximálny počet bajtov potrebný na uloženie viacbajtovej reprezentácie wc a uloží ju do pamäte, na ktorú ukazuje s. Je možné zapísať maximálne MB_CUR_MAX bajtov. Hodnota ps sa podľa potreby aktualizuje.
- Ak s je nulový ukazovateľ, volanie je ekvivalentné s hodnotou
wcrtomb(buf, L' ', ps)
pre nejaký vnútorný buffer buf. - Ak
wc == L' '
je uložený nulový bajt.
Parametre wcrtomb ()
- s: Ukazovateľ na viacbajtové pole znakov na uloženie výsledku.
- wc: Konvertovať široký znak.
- ps: Ukazovateľ na stav konverzie použitý pri interpretácii viacbytového reťazca
wcrtomb () Vrátená hodnota
- Ak bude úspešná, funkcia wcrtomb () vráti počet bajtov zapísaných do poľa znakov, na ktorý je s prvkom ukázané s.
- Pri zlyhaní (tj. Wc nie je platný široký znak) vráti -1, errno je nastavené na EILSEQ a ponechá * ps v nešpecifikovanom stave.
Príklad: Ako funguje funkcia 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