C ++ funkcija wcrtomb () konvertuoja platų simbolį į siaurą daugiabačių vaizdą.
Wcrtomb () yra apibrėžtas antraštės faile.
wcrtomb () prototipas
dydis_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);
Funkcija wcrtomb () konvertuoja platų simbolį, kurį vaizduoja wc, į siaurą daugiabaitį simbolį ir yra saugomas s nurodytu adresu.
- Jei s nėra nulinis rodyklė, funkcija wcrtomb () nustato maksimalų baitų skaičių, reikalingą saugoti daugiabučio wc vaizdą, ir saugo jį atminties vietoje, į kurią rodo s. Galima parašyti ne daugiau kaip MB_CUR_MAX baitų. Ps reikšmė atnaujinama pagal poreikį.
- Jei s yra nulinis rodyklė, iškvietimas yra lygiavertis
wcrtomb(buf, L' ', ps)
kai kurių vidinių buferių buf. - Jei
wc == L' '
, saugomas nulinis baitas.
wcrtomb () parametrai
- s: Daugiabačio simbolių masyvo žymeklis rezultatui išsaugoti.
- wc: platus simbolis, kurį reikia konvertuoti.
- ps: žymeklis į konversijos būseną, naudojamą aiškinant kelių baitų eilutę
wcrtomb () Grąžinimo vertė
- Pasisekus, funkcija wcrtomb () grąžina baitų, parašytų simbolių masyvui, kurio pirmąjį elementą rodo s, skaičių.
- Sugedus (ty wc nėra galiojantis platus simbolis), jis grąžina -1, errno yra nustatytas į EILSEQ ir palieka * ps nenurodytą būseną.
Pavyzdys: Kaip veikia wcrtomb () funkcija?
#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