_mbclen
, mblen
, _mblen_l
, _mbclen_l
Uzunluğu alır ve çok baytlı bir karakterin geçerliliğini belirler.
Önemli
Bu API, Windows Çalışma Zamanı yürütülen uygulamalarda kullanılamaz. Daha fazla bilgi için bkz. Evrensel Windows Platformu uygulamalarında desteklenmeyen CRT işlevleri.
Sözdizimi
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
);
Parametreler
c
Çok baytlı karakter.
mbstr
Çok baytlı bayt bayt dizisinin adresi.
count
Denetlenecek bayt sayısı.
locale
Kullanılacak yerel ayar.
Dönüş değeri
_mbclen
ve _mbclen_l
çok baytlı karakterin c
uzunluğuna göre 1 veya 2 döndürür. İşlevler, çok baytlı olsun veya olmasın c
UTF-8 için her zaman 1 döndürür. için _mbclen
hata döndürme yok.
NULL
mblen
değilse mbstr
ve _mblen_l
çok baytlı karakterin uzunluğunu bayt cinsinden döndürür. mblen
ve _mblen_l
işlevleri UTF-8 üzerinde düzgün çalışır ve 1 ile 3 arasında bir değer döndürebilir. olduğunda mbstr
NULL
(veya geniş karakterli null karaktere işaret eder) mblen
ve _mblen_l
0 döndürür. İşaret eden mbstr
nesnenin ilk count
karakterler içinde geçerli bir çok baytlı karakter oluşturması veya mblen
_mblen_l
-1 döndürmesi gerekir.
Açıklamalar
_mbclen
işlevi, çok baytlı karakterinin c
uzunluğunu bayt cinsinden döndürür. Çok c
baytlı bir karakterin baş baytını göstermiyorsa (örtük bir çağrı _ismbblead
tarafından belirlendiği gibi) sonucu _mbclen
tahmin edilemez.
mblen
geçerli bir çok baytlı karakterse bayt mbstr
cinsinden uzunluğu döndürür. Ayrıca kod sayfasıyla ilişkili çok baytlı karakter geçerliliğini de belirler. mblen
count
içinde yer alan mbstr
ancak bayttan MB_CUR_MAX
fazla olmayan veya daha az bayt inceler.
Çıkış değeri, yerel ayarın LC_CTYPE
kategori ayarından etkilenir. Bu işlevlerin son eki olmayan _l
sürümleri, bu yerel ayara bağımlı davranış için geçerli yerel ayarı kullanır. Son _l
ekli sürümler aynı şekilde davranır, ancak bunun yerine geçirilen yerel ayar parametresini kullanır. Daha fazla bilgi için bkz setlocale
. ve Yerel Ayar.
_mbclen
, _mblen_l
ve _mbclen_l
Standart C kitaplığının parçası değil, Microsoft'a özeldir. Bunları taşınabilir kod istediğiniz yerde kullanmanızı önermeyiz. Standart C uyumluluğu için veya mbrlen
kullanınmblen
.
Varsayılan olarak, bu işlevin genel durumunun kapsamı uygulama olarak belirlenmiştir. Bu davranışı değiştirmek için bkz. CRT'de Genel durum.
Genel metin yordamı eşlemeleri
Tchar.h yordamı | _UNICODE ve _MBCS tanımlanmadı |
_MBCS tanımlanan |
_UNICODE tanımlanan |
---|---|---|---|
_tclen |
Makro veya satır içi işlevle eşler | _mbclen |
Makro veya satır içi işlevle eşler |
Gereksinimler
Yordam | Gerekli başlık |
---|---|
_mbclen |
<mbstring.h> |
mblen |
<stdlib.h> |
_mblen_l |
<stdlib.h> |
Daha fazla uyumluluk bilgisi için bkz . Uyumluluk.
Örnek
// 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
Ayrıca bkz.
Karakter sınıflandırması
Yerel ayar
Çok baytlı karakter dizilerinin yorumlanması
_mbccpy
, _mbccpy_l
mbrlen
strlen
, wcslen
, _mbslen
, , _mbslen_l
, _mbstrlen
, _mbstrlen_l