Fungsi mbrlen () di C ++ menentukan ukuran dalam byte dari karakter multibyte.
Fungsi mbrlen () didefinisikan dalam file header.
mbrlen () prototipe
size_t mbrlen (const char * s, size_t n, mbstate_t * ps);
Fungsi mbrlen () memeriksa string yang byte pertamanya ditunjuk oleh s dan menentukan ukurannya dalam byte untuk keadaan konversi saat ini ps. Paling banyak n byte dalam s diperiksa.
mbrlen () Parameter
- s: Arahkan ke byte pertama dari string multibyte untuk diperiksa.
- n: Jumlah maksimum byte dalam s untuk diperiksa.
- ps: Pointer ke objek mbstate_t yang mendefinisikan status konversi.
mbrlen () Nilai kembali
Fungsi mbrlen () mengembalikan:
- Jumlah byte yang menyelesaikan karakter multibyte yang valid.
- 0 jika s menunjuk ke karakter nol.
- -1 adalah kesalahan pengkodean terjadi.
- -2 jika n byte berikutnya tidak mewakili karakter multibyte lengkap.
Contoh: Bagaimana fungsi mbrlen () bekerja?
#include #include #include using namespace std; void test_mbrlen(const char *s, size_t n) ( mbstate_t ps = mbstate_t(); int retVal = mbrlen(s, n, &ps); if (retVal == -2) cout << "Next " << n << " byte(s) doesn't represent a complete multibyte character" << endl; else if (retVal == -1) cout << "Next " << n << " byte(s) doesn't represent a valid multibyte character" << endl; else cout << "Next " << n << " byte(s) of " << s << " holds " << retVal << " byof multibyte character" << endl; ) int main() ( setlocale(LC_ALL, "en_US.utf8"); char str() = "u00b5"; test_mbrlen(str, 1); test_mbrlen(str, 5); return 0; )
Saat Anda menjalankan program, hasilnya adalah:
1 byte berikutnya tidak mewakili karakter multibyte lengkap 5 byte berikutnya dari µ menampung 2 byte karakter multibyte