Funktsioon wcrtomb () C ++ -s teisendab laia märgi oma kitsaks mitmebaidiseks esituseks.
Wcrtomb () on määratletud päisefailis.
wcrtomb () prototüüp
suurus_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);
Funktsioon wcrtomb () teisendab laia märgi, mida wc tähistab, kitsaks mitmebaidiseks tähemärgiks ja salvestatakse aadressile, millele s osutab.
- Kui s pole nullkursor, määrab funktsioon wcrtomb () kindlaks maksimaalse baitide arvu, mis on vajalik wc mitmebaidise kujutise salvestamiseks, ja salvestab selle mälu asukohta, millele s osutab. Kirjutada saab maksimaalselt MB_CUR_MAX baiti. Ps väärtust värskendatakse vastavalt vajadusele.
- Kui s on nullkursor, on kõne samaväärne
wcrtomb(buf, L' ', ps)
mõne sisemise puhvri bufiga. - Kui
wc == L' '
, salvestatakse nullbait.
wcrtomb () parameetrid
- s: mitmebaidise tähemärgi osuti tulemuse salvestamiseks.
- wc: lai märk teisendamiseks.
- ps: kursor teisenduse olekusse, mida kasutatakse mitmebaidise stringi tõlgendamisel
wcrtomb () Tagastusväärtus
- Edukuse korral tagastab funktsioon wcrtomb () märkide massiivile kirjutatud baitide arvu, mille esimesele elemendile osutab s.
- Rikke korral (st wc ei ole kehtiv lai tähemärk) naaseb väärtus -1, errno väärtuseks määratakse EILSEQ ja jätab * ps täpsustamata olekusse.
Näide: Kuidas funktsioon wcrtomb () töötab?
#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