Aracılığıyla paylaş


_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 cuzunluğ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 _mbclenhata döndürme yok.

NULLmblen 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 cuzunluğunu bayt cinsinden döndürür. Çok c baytlı bir karakterin baş baytını göstermiyorsa (örtük bir çağrı _ismbbleadtarafı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. mblencount içinde yer alan mbstrancak 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_lve _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