C ++ wcrtomb () - C ++ standardna biblioteka

Funkcija wcrtomb () u C ++ pretvara široki znak u svoj uski multibajtni prikaz.

Wcrtomb () je definiran u datoteci zaglavlja.

prototip wcrtomb ()

 veličina_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);

Funkcija wcrtomb () pretvara široki znak predstavljen wc u uski višebajtni znak i pohranjuje se na adresu na koju pokazuje s.

  • Ako s nije null pokazivač, funkcija wcrtomb () određuje maksimalan broj bajtova potrebnih za spremanje multibajtnog prikaza wc i pohranjuje ga na memorijsko mjesto na koje pokazuje s. Može biti zapisano najviše MB_CUR_MAX bajtova. Vrijednost ps ažurira se prema potrebi.
  • Ako je s null pokazivač, poziv je ekvivalentan wcrtomb(buf, L'', ps)za neki interni buffer buff.
  • Ako wc == L''je pohranjen nulti bajt.

wcrtomb () parametri

  • s: Pokazivač na višebajtni niz znakova za spremanje rezultata.
  • wc: Široki znak za pretvaranje.
  • ps: pokazivač na stanje pretvorbe koje se koristi pri tumačenju višebajtnog niza

wcrtomb () Povratna vrijednost

  • Nakon uspjeha, funkcija wcrtomb () vraća broj bajtova zapisanih u niz znakova na čiji je prvi element usmjeren s.
  • U slučaju neuspjeha (tj. Wc nije valjani široki znak), vraća -1, errno je postavljeno na EILSEQ i ostavlja * ps u neodređenom stanju.

Primjer: Kako funkcionira funkcija 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

Zanimljivi članci...