De functie wcrtomb () in C ++ converteert een breed teken naar zijn smalle multibyte-weergave.
De wcrtomb () is gedefinieerd in het header-bestand.
wcrtomb () prototype
size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);
De functie wcrtomb () converteert het brede teken dat wordt weergegeven door wc naar een smal multibyte-teken en wordt opgeslagen in het adres waarnaar wordt verwezen door s.
- Als s geen null-pointer is, bepaalt de functie wcrtomb () het maximale aantal bytes dat nodig is om de multibyte-weergave van wc op te slaan en slaat deze op de geheugenlocatie waarnaar s verwijst. Er kunnen maximaal MB_CUR_MAX bytes worden geschreven. De waarde van ps wordt indien nodig bijgewerkt.
- Als s een null-pointer is, is de aanroep equivalent aan
wcrtomb(buf, L' ', ps)
voor een interne buffer buf. - Als
wc == L' '
er een nulbyte is opgeslagen.
wcrtomb () Parameters
- s: Pointer naar de multibyte-tekenreeks om het resultaat op te slaan.
- wc: breed karakter om te converteren.
- ps: Pointer naar de conversiestatus die wordt gebruikt bij het interpreteren van de multibyte-reeks
wcrtomb () Retourwaarde
- Bij succes retourneert de functie wcrtomb () het aantal bytes dat is geschreven naar de tekenreeks waarvan het eerste element wordt aangeduid door s.
- Bij een fout (dwz wc is geen geldig breed teken), retourneert het -1, errno is ingesteld op EILSEQ en laat * ps in een niet-gespecificeerde staat.
Voorbeeld: hoe werkt wcrtomb () functie?
#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