Udostępnij za pośrednictwem


_mbclen, mblen, _mblen_l

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

Ważna uwagaWażne

Ten interfejs API nie można używać w aplikacji, których wykonywanie w czasie wykonywania systemu Windows.Aby uzyskać więcej informacji, zobacz CRT funkcje nie obsł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ów wielobajtowych.

  • mbstr
    Adres sekwencję znaków wielobajtowych bajtu.

  • count
    Liczba bajtów, aby sprawdzić.

  • locale
    Ustawienia regionalne używane.

Wartość zwracana

_mbclenZwraca wartość 1 lub 2, zgodnie z czy znaków wielobajtowych c jest 1 lub 2 bajtów.Nie było błędu zwrotu dla _mbclen.Jeśli mbstr nie jest NULL, mblen zwraca długość, w bajtach znaków wielobajtowych.Jeśli mbstr jest NULL lub wskazuje znak null szerokich znaków mblen zwraca wartość 0.Jeśli obiekt który mbstr punktów nie stanowi prawidłowych znaków wielobajtowych w ciągu pierwszych count znaków, mblen zwraca wartość –1.

Uwagi

_mbclen , Funkcja zwraca długość, w bajtach znaków wielobajtowych c.Jeśli c nie wskazuje bajtów początkowych znaków wielobajtowych, określanych przez wywołanie niejawna _ismbblead, w wyniku _mbclen jest nieprzewidywalna.

mblenZwraca długość w bajtach mbstr Jeśli jest prawidłową znaków wielobajtowych, a określa ważność znaków wielobajtowych skojarzone ze stroną kodową.mblensprawdza, czy count lub mniejszą liczbę bajtów zawartych w mbstr, ale nie więcej niż MB_CUR_MAX bajtów.

Wartość produkcji jest zależny od ustawienia z LC_CTYPE kategorii ustawienie regionalne tzn. zobacz setlocale Aby uzyskać więcej informacji.Wersje te funkcje, bez _l sufiks Użyj bieżących ustawień regionalnych tego zachowania zależne od ustawień lokalnych; wersje z _l sufiks są identyczne z tym, że używają zamiast przekazany parametr ustawień regionalnych.Aby uzyskać więcej informacji, zobacz Ustawienia regionalne.

Tekst rodzajowy rutynowych mapowania

Rozpoczęto wykonywanie procedury TCHAR.h

_UNICODE i _MBCS nie zdefiniowany

_MBCS, definicja

_UNICODE, definicja

_tclen

Mapy i makro lub wewnętrznej funkcji

_mbclen

Mapy i makro lub wewnętrznej funkcji

Wymagania

Rozpoczęto wykonywanie procedury

Wymaganego nagłówka

_mbclen

<mbstring.h>

mblen

<stdlib.h>

_mblen_l

<stdlib.h>

Informacji dotyczących zgodności, zobacz zgodności we wprowadzeniu.

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ływać funkcji C standardowej, należy użyć PInvoke. Aby uzyskać więcej informacji, zobacz Przykłady wywołać platformy.

Zobacz też

Informacje

Klasyfikacji znaków

Ustawienia regionalne

Interpretacja sekwencje znaków wielobajtowych

_mbccpy, _mbccpy_l

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