Partilhar via


_mbclen mblen, _mblen_l

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

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 caractere multibyte byte.

  • count
    Número de bytes para verificar.

  • locale
    Localidade usar.

Valor de retorno

_mbclen Retorna 1 ou 2, de acordo com se os caractere multibyte c é 1 ou 2 bytes longos. Não há nenhum retorno de erro de _mbclen. If mbstr não é NULL, mblen Retorna o comprimento, em bytes, de caractere multibyte. If mbstr é NULL ou ele aponta para o caractere nulo de caractere largo, mblen Retorna 0. Se o objeto que mbstr pontos a serem não formam um caractere válido multibyte dentro do primeiro count caracteres, mblen Retorna – 1.

Comentários

The _mbclen função retorna o tamanho, em bytes, de caractere multibyte c. If c não aponta para o byte inicial de um caractere multibyte sistema autônomo determinado por uma telefonar de implícita _ismbblead, o resultado de _mbclen é imprevisível.

mblen Retorna o comprimento em bytes do mbstr Se ele é um caractere válido multibyte e determina a validade de caracteres multibyte associada à página de código. mblen examina count ou menos bytes contidos em mbstr, mas não pode ser maior do que MB_CUR_MAX bytes.

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

Mapeamentos de rotina de texto genérica

Rotina tchar.h

_UNICODE e _MBCS não definido

_MBCS definido

_UNICODE definido

_tclen

Mapas de macro ou função in-line

_mbclen

Mapas de macro ou função in-line

Requisitos

Rotina

Cabeçalho necessário

_mbclen

<mbstring.h>

mblen

<stdlib.h>

_mblen_l

<stdlib.h>

Para obter mais informações de compatibilidade, consulte 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

Equivalente do NET Framework

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

Consulte também

Referência

Classificação de caractere

Localidade

Interpretação de seqüências de caractere multibyte

_mbccpy, _mbccpy_l

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