Fungsi wcrtomb () dalam C ++ menukar watak luas kepada perwakilan multibait sempitnya.
Wcrtomb () ditakrifkan dalam fail tajuk.
prototaip wcrtomb ()
size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);
Fungsi wcrtomb () menukar watak lebar yang diwakili oleh wc ke watak multibait sempit dan disimpan di alamat yang ditunjukkan oleh s.
- Sekiranya s bukan penunjuk nol, fungsi wcrtomb () menentukan bilangan byte maksimum yang diperlukan untuk menyimpan perwakilan multibait wc dan menyimpannya di lokasi memori yang ditunjukkan oleh s. Maksimum MB_CUR_MAX bait boleh ditulis. Nilai ps dikemas kini mengikut keperluan.
- Sekiranya s adalah penunjuk nol, panggilan itu setara dengan
wcrtomb(buf, L' ', ps)
beberapa buf penyangga dalaman. - Sekiranya
wc == L' '
, bait kosong disimpan.
Parameter wcrtomb ()
- s: Penunjuk ke array watak multibait untuk menyimpan hasilnya.
- wc: Watak yang luas untuk ditukar.
- ps: Penunjuk ke keadaan penukaran yang digunakan semasa menafsirkan rentetan multibait
wcrtomb () Nilai pulangan
- Pada kejayaan, fungsi wcrtomb () mengembalikan bilangan bait yang ditulis ke array watak yang elemen pertama ditunjukkan oleh s.
- Pada kegagalan (iaitu wc bukan watak lebar yang sah), ia mengembalikan -1, errno ditetapkan ke EILSEQ dan meninggalkan * ps dalam keadaan tidak ditentukan.
Contoh: Bagaimana fungsi wcrtomb () berfungsi?
#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