Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Pobiera długość i określa ważność znaku wielobajtowego.
Ważne
Tego interfejsu API nie można używać w aplikacjach wykonywanych w środowisko wykonawcze systemu Windows. Aby uzyskać więcej informacji, zobacz Funkcje CRT nieobsługiwane w aplikacjach platforma uniwersalna systemu Windows.
Składnia
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
);
Parametry
c
Znak wielobajtowy.
mbstr
Adres sekwencji bajtów wielobajtowych.
count
Liczba bajtów do sprawdzenia.
locale
Ustawienia regionalne do użycia.
Wartość zwracana
_mbclen i _mbclen_l zwraca wartość 1 lub 2, zgodnie z długością znaku cwielobajtowego . Funkcje zawsze zwracają wartość 1 dla protokołu UTF-8, niezależnie od tego, czy c jest wielobajtowy, czy nie. Nie jest zwracany błąd dla elementu _mbclen.
Jeśli mbstr nie NULLma wartości , mblen i _mblen_l zwraca długość w bajtach znaku wielobajtowego. Funkcje mblen i _mblen_l działają poprawnie w formacie UTF-8 i mogą zwracać wartość z zakresu od 1 do 3. Gdy mbstr wartość to NULL (lub wskazuje znak o wartości null w szerokim znaku) mblen i _mblen_l zwraca wartość 0. Obiekt, który mbstr wskazuje, musi utworzyć prawidłowy znak wielobajtowy w pierwszych count znakach lub _mblen_l mblen zwrócić -1.
Uwagi
Funkcja _mbclen zwraca długość w bajtach wielobajtowego znaku c. Jeśli c nie wskazuje na bajt główny znaku wielobajtowego (określony przez niejawne wywołanie metody _ismbblead, wynik _mbclen jest nieprzewidywalny.
mblen Zwraca długość w bajtach mbstr , jeśli jest to prawidłowy znak wielobajtowy. Określa również ważność wielobajtową skojarzona ze stroną kodową. mblencount sprawdza lub mniej bajtów zawartych w mbstrobiekcie , ale nie więcej niż MB_CUR_MAX bajty.
Na wartość wyjściową LC_CTYPE ma wpływ ustawienie kategorii ustawień regionalnych. Wersje tych funkcji bez sufiksu _l używają bieżących ustawień regionalnych dla tego zachowania zależnego od ustawień regionalnych. Wersje _l sufiksów zachowują się tak samo, ale używają parametru ustawień regionalnych przekazanych w zamian. Aby uzyskać więcej informacji, zobacz setlocale i Ustawienia regionalne.
_mbclen, _mblen_li _mbclen_l są specyficzne dla firmy Microsoft, a nie są częścią standardowej biblioteki języka C. Nie zalecamy używania ich w miejscu, w którym chcesz użyć kodu przenośnego. W przypadku zgodności ze standardem C użyj polecenia mblen lub mbrlen zamiast niego.
Domyślnie stan globalny tej funkcji jest zakresem aplikacji. Aby zmienić to zachowanie, zobacz Stan globalny w CRT.
Mapowania procedur tekstu ogólnego
| Procedura tchar.h | _UNICODE i _MBCS niezdefiniowane |
_MBCS zdefiniowany |
_UNICODE zdefiniowany |
|---|---|---|---|
_tclen |
Mapuje na makro lub funkcję śródliniową | _mbclen |
Mapuje na makro lub funkcję śródliniową |
Wymagania
| Procedura | Wymagany nagłówek |
|---|---|
_mbclen |
<mbstring.h> |
mblen |
<stdlib.h> |
_mblen_l |
<stdlib.h> |
Aby uzyskać więcej informacji o 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 );
}
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
Zobacz też
Klasyfikacja znaków
ustawienia regionalne
Interpretacja sekwencji znaków wielobajtowych
_mbccpy, _mbccpy_l
mbrlen
strlen, , wcslen, _mbslen, _mbslen_l, , _mbstrlen_mbstrlen_l