_mbclen
, mblen
, _mblen_l
, _mbclen_l
Mendapatkan panjang dan menentukan validitas karakter multibyte.
Penting
API ini tidak dapat digunakan dalam aplikasi yang dijalankan di Windows Runtime. Untuk informasi selengkapnya, lihat Fungsi CRT yang tidak didukung di aplikasi Platform Windows Universal.
Sintaks
size_t _mbclen(
const unsigned char *c
);
size_t _mbclen_l(
unsigned char const* c,
_locale_t locale
);
int mblen(
const char *mbstr,
size_t count
);
int _mblen_l(
const char *mbstr,
size_t count,
_locale_t locale
);
Parameter
c
Karakter multibyte.
mbstr
Alamat urutan byte multibyte-character.
count
Jumlah byte yang akan diperiksa.
locale
Lokal untuk digunakan.
Nilai hasil
_mbclen
dan _mbclen_l
mengembalikan 1 atau 2, sesuai dengan panjang karakter c
multibyte . Fungsi selalu mengembalikan 1 untuk UTF-8, baik c
multibyte atau tidak. Tidak ada pengembalian kesalahan untuk _mbclen
.
Jika mbstr
bukan NULL
, mblen
dan _mblen_l
mengembalikan panjang, dalam byte, dari karakter multibyte. Fungsi mblen
dan _mblen_l
berfungsi dengan benar pada UTF-8, dan dapat mengembalikan nilai antara 1 dan 3. Kapan mbstr
( NULL
atau menunjuk ke karakter null karakter lebar), mblen
dan _mblen_l
mengembalikan 0. Objek yang mbstr
menunjuk ke harus membentuk karakter multibyte yang valid dalam karakter pertama count
, atau mblen
dan _mblen_l
mengembalikan -1.
Keterangan
Fungsi _mbclen
mengembalikan panjang, dalam byte, dari karakter c
multibyte . Jika c
tidak menunjuk ke byte prospek karakter multibyte (sebagaimana ditentukan oleh panggilan implisit ke _ismbblead
, hasilnya _mbclen
tidak dapat diprediksi.
mblen
mengembalikan panjang dalam byte mbstr
jika merupakan karakter multibyte yang valid. Ini juga menentukan validitas karakter multibyte yang terkait dengan halaman kode. mblen
memeriksa count
atau lebih sedikit byte yang terkandung dalam mbstr
, tetapi tidak lebih dari MB_CUR_MAX
byte.
Nilai output dipengaruhi oleh LC_CTYPE
pengaturan kategori lokal. Versi fungsi ini tanpa _l
akhiran menggunakan lokal saat ini untuk perilaku tergantung lokal ini. Versi _l
akhiran berperilaku sama, tetapi mereka menggunakan parameter lokal yang diteruskan sebagai gantinya. Untuk informasi selengkapnya, lihat setlocale
dan Lokal.
_mbclen
, _mblen_l
, dan _mbclen_l
khusus Microsoft, bukan bagian dari pustaka Standard C. Kami tidak menyarankan Anda menggunakannya di mana Anda menginginkan kode portabel. Untuk kompatibilitas Standard C, gunakan mblen
atau mbrlen
sebagai gantinya.
Secara default, status global fungsi ini dicakup ke aplikasi. Untuk mengubah perilaku ini, lihat Status global di CRT.
Pemetaan rutin teks generik
Rutinitas Tchar.h | _UNICODE dan _MBCS tidak ditentukan |
_MBCS Didefinisikan |
_UNICODE Didefinisikan |
---|---|---|---|
_tclen |
Peta ke makro atau fungsi sebaris | _mbclen |
Peta ke makro atau fungsi sebaris |
Persyaratan
Rutin | Header yang diperlukan |
---|---|
_mbclen |
<mbstring.h> |
mblen |
<stdlib.h> |
_mblen_l |
<stdlib.h> |
Untuk informasi kompatibilitas selengkapnya, lihat Kompatibilitas.
Contoh
// crt_mblen.c
/* illustrates the behavior of the mblen function
*/
#include <stdlib.h>
#include <stdio.h>
int main( void )
{
int i;
char *pmbc = (char *)malloc( sizeof( char ) );
wchar_t wc = L'a';
printf( "Convert wide character to multibyte character:\n" );
wctomb_s( &i, pmbc, sizeof(char), wc );
printf( " Characters converted: %u\n", i );
printf( " Multibyte character: %x\n\n", *pmbc );
i = mblen( pmbc, MB_CUR_MAX );
printf( "Length in bytes of multibyte character %x: %u\n", *pmbc, i );
pmbc = NULL;
i = mblen( pmbc, MB_CUR_MAX );
printf( "Length in bytes of NULL multibyte character %x: %u\n", pmbc, i );
}
Convert wide character to multibyte character:
Characters converted: 1
Multibyte character: 61
Length in bytes of multibyte character 61: 1
Length in bytes of NULL multibyte character 0: 0
Baca juga
Klasifikasi karakter
Lokal
Interpretasi urutan karakter multibyte
_mbccpy
, _mbccpy_l
mbrlen
strlen
, wcslen
, _mbslen
, _mbslen_l
, _mbstrlen
, _mbstrlen_l
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk