_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.
Valor retornado
_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 _mbsnccnt_l
encontrar um caractere nulo no segundo byte de um caractere de byte duplo, o primeiro byte também será considerado nulo e 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âmetro 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, confira Estado global no 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