_strncnt
, _wcsncnt
, _mbsnbcnt
, _mbsnbcnt_l
, _mbsnccnt
, _mbsnccnt_l
Retorna o número de caracteres ou bytes dentro de uma contagem especificada.
Importante
_mbsnbcnt
, _mbsnbcnt_l
, _mbsnccnt
e _mbsnccnt_l
não podem ser usados em aplicativos que são 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 _strncnt(
const char *str,
size_t count
);
size_t _wcsncnt(
const wchar_t *str,
size_t count
);
size_t _mbsnbcnt(
const unsigned char *str,
size_t count
);
size_t _mbsnbcnt_l(
const unsigned char *str,
size_t count,
_locale_t locale
);
size_t _mbsnccnt(
const unsigned char *str,
size_t count
);
size_t _mbsnccnt_l(
const unsigned char *str,
size_t count,
_locale_t locale
);
Parâmetros
str
Cadeia de caracteres a ser examinada.
count
Número de caracteres ou bytes a ser examinado em str
.
locale
Localidade a usar.
Retornar valor
_mbsnbcnt
e _mbsnbcnt_l
retornam o número de bytes encontrado no primeiro de count
caracteres multibyte de str
. _mbsnccnt
e _mbsnccnt_l
retornam o número de bytes encontrado no primeiro count
de bytes de str
. Se um caractere nulo for encontrado antes da conclusão do str
exame, eles retornarão o número de bytes ou caracteres encontrados antes do caractere nulo. Se str
consiste em menos de count
caracteres ou bytes, retornam o número de caracteres ou bytes na cadeia de caracteres. Se count
for menor que zero, eles retornam 0. Nas versões anteriores, essas funções tinham um valor retornado do tipo int
ao invés de size_t
.
_strncnt
retorna o número de caracteres nos primeiros count
bytes da cadeia de caracteres de byte único str
. _wcsncnt
retorna o número de caracteres nos primeiros count
caracteres largos da cadeia de caracteres largos str
.
Comentários
_mbsnbcnt
e _mbsnbcnt_l
contam o número de bytes encontrados no primeiro count
de caracteres multibyte de str
. _mbsnbcnt
e _mbsnbcnt_l
substituem mtob
e devem ser usados no lugar de mtob
.
_mbsnccnt
e _mbsnccnt_l
contam o número de caracteres encontrado no primeiro count
de bytes de str
. Se _mbsnccnt
e encontrar um caractere nulo no segundo byte de um caractere de byte duplo, o primeiro byte também será considerado nulo e _mbsnccnt_l
não será incluído no valor de contagem retornado. _mbsnccnt
e _mbsnccnt_l
substituem btom
e devem ser usados no lugar de btom
.
Se str
for um NULL
ponteiro ou for count
0, essas funções invocarão o manipulador de parâmetros inválido, conforme descrito em Validação de parâmetro, errno
será definido como EINVAL
e a função retornará 0.
O valor de saída é afetado pela configuração da categoria LC_CTYPE
da localidade. Para obter mais informações, consulte setlocale
. As versões dessas funções sem o sufixo _l
usam a localidade atual desse comportamento dependente da localidade. As versões com o sufixo _l
são idênticas, exceto por usarem o parâmetro de localidade passado em seu lugar. Para obter mais informações, consulte Localidade.
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 | _UNICODE e _MBCS não definidos |
_MBCS definido |
_UNICODE definido |
---|---|---|---|
_tcsnbcnt |
_strncnt |
_mbsnbcnt |
_wcsncnt |
_tcsnccnt |
_strncnt |
_mbsnbcnt |
N/D |
_wcsncnt |
N/D | N/D | _mbsnbcnt |
_wcsncnt |
N/D | N/D | _mbsnccnt |
N/D | N/D | _mbsnbcnt_l |
_mbsnccnt_l |
Requisitos
Rotina | Cabeçalho necessário |
---|---|
_mbsnbcnt |
<mbstring.h> |
_mbsnbcnt_l |
<mbstring.h> |
_mbsnccnt |
<mbstring.h> |
_mbsnccnt_l |
<mbstring.h> |
_strncnt |
<tchar.h> |
_wcsncnt |
<tchar.h> |
Para obter informações sobre compatibilidade, consulte Compatibilidade.
Exemplo
// crt_mbsnbcnt.c
#include <mbstring.h>
#include <stdio.h>
int main( void )
{
unsigned char str[] = "This is a multibyte-character string.";
unsigned int char_count, byte_count;
char_count = _mbsnccnt( str, 10 );
byte_count = _mbsnbcnt( str, 10 );
if ( byte_count - char_count )
printf( "The first 10 characters contain %d multibyte characters\n", char_count );
else
printf( "The first 10 characters are single-byte.\n");
}
Saída
The first 10 characters are single-byte.
Confira também
Manipulação de cadeia de caracteres
Localidade
Interpretação de sequências de caracteres multibyte
_mbsnbcat
, _mbsnbcat_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