_mbclen, mblen, _mblen_l
Obtém o tamanho e determina a validade de um caractere de multibyte.
Importante |
---|
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
Interpretação de seqüências de caracteres Multibyte
strlen strlen_l, wcslen, wcslen_l, _mbslen, _mbslen_l, _mbstrlen, _mbstrlen_l