Compartilhar via


_mbclen, mblen, _mblen_l

Obtém o tamanho e determina a validade de um caractere de multibyte.

Observação importanteImportante

Este API não pode ser usado em aplicativos executados em Tempo de Execução do Windows.Para obter mais informações, consulte Funções de CRT não suportadas com /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 );

Parâmetros

  • c
    Caractere de Multibyte.

  • mbstr
    Endereço de uma sequência de bytes de multibyte- caractere.

  • count
    Número de bytes para verificar.

  • locale
    A localidade usar.

Valor de retorno

_mbclen retorna 1 ou 2, de acordo com que o caractere c de multibyte é 1 ou 2 bytes tempo.Não há nenhum retorno de erro para _mbclen.Se mbstr não é NULL, mblen retorna o tamanho, em bytes, o caractere de multibyte.Se mbstr é NULL ou aponta para o caractere nulo de largo- caractere, retorna 0 de mblen .Se o objeto que não mbstr ele forma um caractere válido de multibyte dentro do primeiro caracteres de count , mblen retorna – 1.

Comentários

A função de _mbclen retorna o tamanho, em bytes, de caracteres cde multibyte.Se c não aponta para o byte inicial de um caractere de multibyte conforme determinado por uma chamada implícita a _ismbblead, o resultado de _mbclen é imprevisível.

mblen retorna o tamanho em bytes de mbstr se é um caractere válido de multibyte e determina a validade de multibyte- caracteres associada à página de código.mblen examina count ou menos bytes contido em mbstr, mas não mais do que bytes de MB_CUR_MAX .

O valor de saída é afetado pela configuração da categoria de LC_CTYPE de localidade; consulte setlocale para mais informações.As versões dessas funções sem o sufixo de _l usam a localidade atual para este comportamento de são dependentes; as versões com o sufixo de _l são idênticas exceto que usam o parâmetro de localidade passado em vez disso.Para obter mais informações, consulte Localidade.

Mapeamentos da rotina de Genérico- texto

Rotina de Tchar.h

_UNICODE e não definidos _MBCS

_MBCS definido

_UNICODE definido

_tclen

Mapeados para a função macro ou in-line

_mbclen

Mapeados para a função macro ou in-line

Requisitos

Rotina

Cabeçalho necessário

_mbclen

<mbstring.h>

mblen

<stdlib.h>

_mblen_l

<stdlib.h>

Para mais informações, consulte Compatibilidade de compatibilidade na introdução.

Exemplo

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

Saída

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

Equivalência do .NET Framework

Não aplicável. Para chamar a função padrão de C, use PInvoke. Para obter mais informações, consulte Exemplos de invocação de plataforma.

Consulte também

Referência

Classificação de caracteres

Localidade

Interpretação de seqüências de caracteres Multibyte

_mbccpy, _mbccpy_l

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