C ++ wcrtomb () - C ++ Pustaka Standar

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

Artikel yang menarik...