Sdílet prostřednictvím


_mbclen, mblen, _mblen_l

Získá délku a určí platnost vícebajtového znaku.

Důležitá poznámkaDůležité

Toto API nelze použít v aplikacích, které jsou spuštěny v modulu Windows Runtime.Další informace naleznete v tématu CRT funkce nejsou podporovány s /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
    Vícebajtové znaky.

  • mbstr
    Adresa vícebajtové znakové sekvence.

  • count
    Počet bajtů, které mají být zkontrolovány.

  • locale
    Použité národní prostředí.

Vrácená hodnota

_mbclen vrátí hodnotu 1 nebo 2, podle toho, zda vícebajtový znak c je 1 nebo 2 bajty dlouhý.Není vrácena žádná chyba pro _mbclen.Pokud mbstr není NULL, mblen vrátí délku v bajtech vícebajtového znaku.Pokud mbstr je NULL nebo odkazuje na prázdný znak širokého znaku, mblen vrátí hodnotu 0.Pokud objekt, který ukazuje na mbstr, netvoří platné vícebajtové znaky v prvních count znacích, mblen vrátí hodnotu –1.

Poznámky

Funkce _mbclen vrátí délku v bajtech vícebajtového znaku c.Pokud c neodkazuje na úvodní bajt vícebajtového znaku, jak je určeno implicitním voláním _ismbblead, výsledek _mbclen nelze předvídat.

mblen vrací délku v bajtech mbstr, pokud jde o platný vícebajtový znak a určuje platnost vícebajtového znaku propojeného se znakovou stránkou.mblen zkoumá count nebo menší počet bajtů obsažených v mbstr, ale ne více než MB_CUR_MAX bajtů.

Výstupní hodnota je ovlivněna nastavením kategorie LC_CTYPE národního prostředí; viz setlocale pro další informace.Verze těchto funkcí bez přípony _l používají aktuální národní prostředí pro toto chování závislé na národním prostředí. Verze s příponou _l jsou stejné s tím rozdílem, že používají předaný parametr národního prostředí.Další informace naleznete v tématu Národní prostředí.

Rutinní mapování obecného textu

Rutina Tchar.h

_UNICODE a _MBCS nejsou definovány

_MBCS definováno

_UNICODE definováno

_tclen

Mapuje se na makro nebo vloženou funkci

_mbclen

Mapuje se na makro nebo vloženou funkci

Požadavky

Rutina

Požadované záhlaví

_mbclen

<mbstring.h>

mblen

<stdlib.h>

_mblen_l

<stdlib.h>

Další informace o kompatibilitě naleznete v tématu Kompatibilita.

Příklad

// 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 );
}

Výsledek

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

Ekvivalent v rozhraní .NET Framework

Nelze použít. Pokud chcete volat standardní funkci jazyka C, použijte PInvoke. Další informace naleznete v tématu Příklady vyvolání platformy.

Viz také

Referenční dokumentace

Klasifikace znaků

Národní prostředí

Výklad sekvencí vícebajtových znaků

_mbccpy, _mbccpy_l

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