Udostępnij za pośrednictwem


_mbclen, mblen, _mblen_l

Pobiera długość i określa ważność znaków wielobajtowych.

Ważna uwagaWażne

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

Klasyfikacja znaków

Regionalne

Interpretacja wielobajtowych sekwencji znaków

_mbccpy, _mbccpy_l

strlen, strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l