_mbclen, mblen, _mblen_l
Pobiera długość i określa ważność znaków wielobajtowych.
![]() |
---|
Tego API nie można używać w aplikacjach korzystających ze środowiska wykonawczego Windows.Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane przez /ZW. |
size_t _mbclen(
const unsigned char *c
);
int mblen(
const char *mbstr,
size_t count
);
int _mblen_l(
const char *mbstr,
size_t count,
_locale_t locale
);
Parametry
c
Znak wielobajtowy.mbstr
Adres sekwencji bajtów znaków wielobajtowych.count
Liczba bajtów do wyboru.locale
Ustawienia regionalne do użycia.
Wartość zwracana
_mbclen zwraca wartość 1 lub 2, w zależności od tego, czy znak wielobajtowy c ma długość 1 lub 2 bajtów.Nie będzie zwrotu błędu dla _mbclen.Jeśli mbstr nie jest NULL, mblen zwraca długość (w bajtach) znaków wielobajtowych.Jeśli mbstr wynosi NULL lub wskazuje znak dwubajtowy typu null, mblen zwraca wartość 0.Jeśli obiekt mbstr, który wskazuje nie tworzy prawidłowego znaku wielobajtowego w obrębie pierwszych znaków count, mblen zwraca -1.
Uwagi
_mbclen funkcja zwraca długość (w bajtach) znaków wielobajtowych c.Jeśli c nie wskazuje bajtu wiodącego znaku wielobajtowego jak ustalono przez wywołanie niejawne _ismbblead, wynik _mbclen jest nieprzewidywalny.
mblen zwraca długość w bajtach mbstr jeśli jest to prawidłowy znak wielobajtowy i określa ważność znaków wielobajtowych skojarzonych ze stroną kodową.mblen sprawdza, czy count lub mniejsza liczba bajtów zawartych w mbstr, ale nie więcej niż MB_CUR_MAX bajtów.
Wartość wyjściowa jest zależna od konfiguracji ustawień kategorii LC_CTYPE ustawień regionalnych; zobacz setlocale, aby uzyskać więcej informacji.Wersje tych funkcji, które nie mają przyrostka _l używają bieżących ustawień regionalnych dla wszelkich zachowań zależnych od ustawień lokalnych; wersje, które mają przyrostek _l są identyczne, z tą różnicą, że w zamian korzystają z przekazanego parametru ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Regionalne.
Rutynowe mapowania zwykłego tekstu
Procedura Tchar.h |
_UNICODE i _MBCS nie zdefiniowany |
_MBCS zdefiniowano |
_UNICODE zdefiniowany |
---|---|---|---|
_tclen |
Mapy do funkcji makro lub funkcji śródwierszowej. |
_mbclen |
Mapy do funkcji makro lub funkcji śródwierszowej. |
Wymagania
Procedura |
Wymagany nagłówek |
---|---|
_mbclen |
<mbCiąg.h> |
mblen |
<stdlib.h> |
_mblen_l |
<stdlib.h> |
Aby uzyskać więcej informacji na temat zgodności – zobacz: Zgodność.
Przykład
// 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 );
}
Dane wyjściowe
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
Odpowiednik w programie .NET Framework
Nie dotyczy. Aby wywołać standardową funkcję C, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywoływania platformy.
Zobacz też
Informacje
Interpretacja wielobajtowych sekwencji znaków
strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l