Fungsi wcrtomb () di C ++ mengonversi karakter lebar menjadi representasi multibyte sempitnya.
Wcrtomb () didefinisikan dalam file header.
wcrtomb () prototipe
size_t wcrtomb (char * s, wchar_t wc, mbstate_t * ps);
Fungsi wcrtomb () mengubah karakter lebar yang diwakili oleh wc menjadi karakter multibyte yang sempit dan disimpan di alamat yang ditunjukkan oleh s.
- Jika s bukan pointer null, fungsi wcrtomb () menentukan jumlah maksimum byte yang diperlukan untuk menyimpan representasi multibyte dari wc dan menyimpannya di lokasi memori yang ditunjukkan oleh s. Maksimum MB_CUR_MAX byte dapat ditulis. Nilai ps diperbarui sesuai kebutuhan.
- Jika s adalah pointer nol, panggilan tersebut setara dengan
wcrtomb(buf, L' ', ps)
untuk beberapa buf buffer internal. - Jika
wc == L' '
, byte nol disimpan.
wcrtomb () Parameter
- s: Arahkan ke larik karakter multibyte untuk menyimpan hasilnya.
- wc: Karakter lebar untuk diubah.
- ps: Pointer ke status konversi yang digunakan saat menafsirkan string multibyte
wcrtomb () Nilai kembali
- Jika berhasil, fungsi wcrtomb () mengembalikan jumlah byte yang ditulis ke array karakter yang elemen pertamanya ditunjukkan oleh s.
- Jika gagal (yaitu wc bukan karakter lebar yang valid), ia mengembalikan -1, errno disetel ke EILSEQ dan membiarkan * ps dalam status tidak ditentukan.
Contoh: Bagaimana fungsi wcrtomb () bekerja?
#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