C ++ mbtowc () - C ++ Pustaka Standar

Fungsi mbtowc () di C ++ mengonversi karakter multibyte menjadi karakter lebar.

Fungsi mbtwoc () didefinisikan dalam file header.

mbtowc () prototipe

 int mbtowc (wchar_t * pwc, const char * pmb, size_t max);

Fungsi mbtowc () mengambil tiga argumen dan mengembalikan nilai integer. Fungsi ini mengubah karakter multibyte yang ditunjukkan oleh pmb menjadi karakter lebar (nilai tipe wchar_t) dan disimpan di lokasi memori yang ditunjukkan oleh pwc.

Jika pmb adalah pointer null, panggilan ke mbtowc () akan mengatur ulang status konversi global dan menentukan apakah urutan shift digunakan.

mbtowc () Parameter

  • pwc: Penunjuk ke karakter lebar yang dihasilkan
  • pmb: Pointer ke karakter multibyte yang diubah menjadi karakter lebar
  • maks: Ukuran maksimum dalam byte pmb untuk dipertimbangkan untuk karakter multibyte.

mbtowc () Nilai kembali

Jika pmb bukan pointer null, mbtowc () mengembalikan:

  • jumlah byte yang terkandung dalam karakter multibyte yang ditunjukkan oleh pmb.
  • -1 jika byte pertama yang ditunjukkan oleh pmb tidak membentuk karakter multibyte yang valid.
  • 0 jika pmb menunjuk ke karakter null yang mengakhiri yaitu ' 0'.

Jika pmb adalah pointer nol, setel ulang status konversi internalnya untuk mewakili status pergeseran awal dan mengembalikan:

  • 0 jika pengkodean multibyte saat ini tidak bergantung pada negara bagian (tidak menggunakan urutan shift)
  • nilai bukan nol jika pengkodean multibyte saat ini bergantung pada negara bagian (menggunakan urutan shift).

Contoh: Bagaimana fungsi mbtowc () bekerja?

 #include #include #include using namespace std; int main() ( char pmb() = "Welcome to Programiz.com"; wchar_t pwc(100); int len, ret_val; /* resets internal conversion state */ mbtowc (NULL, NULL, 0); len = strlen(pmb); ret_val = mbtowc(pwc, pmb, strlen(pmb)); cout << "Return Value = " << ret_val << endl; wcout << "Wide character string: " << pwc; return(0); )

Saat Anda menjalankan program, output yang mungkin adalah:

 Nilai Kembali = 1 String karakter lebar: W @

Artikel yang menarik...