_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.