_mbclen
, mblen
, _mblen_l
, _mbclen_l
Obtém o comprimento e determina a validade de um caractere multibyte.
Importante
Esta API não pode ser usada em aplicativos executados no Windows Runtime. Para obter mais informações, confira Funções do CRT sem suporte em aplicativos da Plataforma Universal do Windows.
Sintaxe
size_t _mbclen(
const unsigned char *c
);
size_t _mbclen_l(
unsigned char const* c,
_locale_t locale
);
int mblen(
const char *mbstr,
size_t count
);
int _mblen_l(
const char *mbstr,
size_t count,
_locale_t locale
);
Parâmetros
c
Caractere multibyte.
mbstr
Endereço de uma sequência de bytes de caracteres multibyte.
count
O número de bytes a serem verificados.
locale
Localidade a usar.
Retornar valor
_mbclen
e retornar 1 ou 2, de acordo com o comprimento do caractere _mbclen_l
c
multibyte . As funções sempre retornam 1 para UTF-8, seja c
multibyte ou não. Não há retorno de erro para _mbclen
o .
Se mbstr
não NULL
for , e retorne o comprimento, em bytes, mblen
do caractere _mblen_l
multibyte. As mblen
funções e funcionam corretamente em UTF-8 e podem retornar um valor entre 1 e _mblen_l
3. Quando mbstr
é NULL
(ou aponta para o caractere nulo de caractere largo) mblen
e _mblen_l
retorna 0. O objeto para o qual mbstr
aponta deve formar um caractere multibyte válido dentro dos primeiros count
caracteres ou mblen
retornar _mblen_l
-1.
Comentários
A função _mbclen
retorna o tamanho, em bytes, do caractere multibyte c
. Se c
não apontar para o byte principal de um caractere multibyte (conforme determinado por uma chamada implícita para _ismbblead
, o resultado de _mbclen
é imprevisível.
mblen
Retorna o comprimento em bytes de mbstr
se for um caractere multibyte válido. Ela também determinará a validade dos caracteres multibyte associada à página de código. mblen
examina count
ou menos bytes contidos em mbstr
, mas não mais de MB_CUR_MAX
bytes.
O valor de saída é afetado LC_CTYPE
pela configuração de categoria da localidade. As versões dessas funções sem o sufixo _l
usam a localidade atual para esse comportamento que depende da localidade. As _l
versões sufixas se comportam da mesma forma, mas usam o parâmetro de localidade passado. Para obter mais informações, consulte setlocale
e Localidade.
_mbclen
, e _mbclen_l
são específicos da Microsoft, _mblen_l
não fazem parte da biblioteca C padrão. Não recomendamos que você as use se quiser um código portátil. Para compatibilidade com C padrão, use mblen
ou mbrlen
em vez disso.
Por padrão, o estado global dessa função tem como escopo o aplicativo. Para alterar esse comportamento, consulte Estado global na CRT.
Mapeamentos de rotina de texto genérico
Rotina Tchar.h | _UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tclen |
É mapeado para um macro ou uma função embutida | _mbclen |
É mapeado para um macro ou uma função embutida |
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_mbclen |
<mbstring.h> |
mblen |
<stdlib.h> |
_mblen_l |
<stdlib.h> |
Para obter 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 );
}
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
Confira também
Classificação de caracteres
Localidade
Interpretação de sequências de caracteres multibyte
_mbccpy
, _mbccpy_l
mbrlen
strlen
, wcslen
, _mbslen
, _mbslen_l
, _mbstrlen
, _mbstrlen_l
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de