Compartilhar via


_mbclen, mblen, _mblen_l

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

Importante

Esta API não pode ser usada em aplicativos que executam no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /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 caracteres multibyte.

  • count
    Número de bytes a serem verificados.

  • locale
    Localidade a ser usada.

Valor de retorno

_mbclen retorna 1 ou 2, de acordo com o caractere multibyte c ter 1 ou 2 bytes. Não há retorno de erro para _mbclen. Se mbstr não for NULL, mblen retorna o tamanho, em bytes, do caractere de multibyte. Se mbstr for NULL ou apontar para o caractere nulo do caractere largo, mblen retornará 0. Se o objeto para o qual mbstr aponta não forma um caractere de multibyte válido dentro dos primeiros caracteres de count, mblen retornará – 1.

Comentários

A função _mbclen retorna o tamanho, em bytes, do caractere multibyte c. Se c não apontar 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 for um caractere válido de multibyte e determina a validade do caractere de multibyte associado com a página de código. mblen examina count ou menos bytes contidos em mbstr, mas não mais do que os bytes de MB_CUR_MAX.

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

Mapeamentos da rotina de texto genérico

Rotina Tchar.h

_UNICODE e _MBCS não definidos

_MBCS definido

_UNICODE definido

_tclen

Mapeia para a função macro ou embutida

_mbclen

Mapeia para a função macro ou embutida

Requisitos

Rotina

Cabeçalho necessário

_mbclen

<mbstring.h>

mblen

<stdlib.h>

_mblen_l

<stdlib.h>

Para obter mais informações sobre compatibilidade, consulte Compatibilidade.

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 chamadas de plataformas.

Consulte também

Referência

Classificação de caractere

Localidade

Interpretação de sequências de caracteres multibyte

_mbccpy, _mbccpy_l

strlen, wcslen, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l