Funcția wcrtomb () din C ++ convertește un caracter larg în reprezentarea sa îngustă multibyte.
Wcrtomb () este definit în fișierul antet.
wcrtomb () prototip
size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);
Funcția wcrtomb () convertește caracterul larg reprezentat de wc într-un caracter îngust multibyte și este stocat în adresa indicată de s.
- Dacă s nu este un pointer nul, funcția wcrtomb () determină numărul maxim de octeți necesari pentru a stoca reprezentarea multibyte a wc și o stochează în locația de memorie indicată de s. Se pot scrie maximum MB_CUR_MAX octeți. Valoarea ps este actualizată după cum este necesar.
- Dacă s este un indicator nul, apelul este echivalent cu
wcrtomb(buf, L' ', ps)
pentru un buf tampon intern. - Dacă
wc == L' '
este stocat un octet nul.
wcrtomb () Parametri
- s: Pointer către matricea de caractere multibyte pentru a stoca rezultatul.
- wc: caracter larg de convertit.
- ps: Pointer către starea de conversie utilizată la interpretarea șirului multibyte
wcrtomb () Valoare returnată
- La succes, funcția wcrtomb () returnează numărul de octeți scris în matricea de caractere al cărui prim element este indicat de s.
- La eșec (adică wc nu este un caracter larg valid), returnează -1, errno este setat la EILSEQ și lasă * ps în stare nespecificată.
Exemplu: Cum funcționează funcția 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