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

contagem
Número de caracteres ou bytes a serem examinados em str.

locale
Localidade a usar.

Valor Retornado

_mbsnbcnt e _mbsnbcnt_l retornam o número de bytes encontrados na primeira contagem de caracteres multibyte de str. _mbsnccnt e _mbsnccnt_l retornam o número de caracteres encontrados na primeira contagem de bytes de str. Se um caractere nulo for encontrado antes da conclusão do exame de str , ele retornará o número de bytes ou caracteres encontrados antes do caractere nulo. Se str consistir em menos de caracteres de contagem ou bytes, eles retornarão o número de caracteres ou bytes na cadeia de caracteres. Se count for menor que zero, eles retornarão 0. Nas versões anteriores, essas funções tinham um valor de retorno do tipo em int vez de size_t.

_strncnt retorna o número de caracteres nos primeiros bytes de contagem da cadeia de caracteres de byte único str. _wcsncnt retorna o número de caracteres na primeira contagem de caracteres largos da cadeia de caracteres largos str.

Comentários

_mbsnbcnt e _mbsnbcnt_l o número de bytes encontrados na primeira contagem de caracteres multibyte de str. _mbsnbcnt e _mbsnbcnt_lsubstituir mtob e devem ser usados no lugar de mtob.

_mbsnccnt e _mbsnccnt_l o número de caracteres encontrados na primeira contagem 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_lsubstituir btom e devem ser usados no lugar de btom.

Se str for um ponteiro NULL ou se a contagem for 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. Consulte setlocale para obter mais informações. 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 isso, consulte Estado global no CRT.

Mapeamentos da rotina de texto genérico

Rotina _UNICODE e _MBCS não definidos _MBCS definido _UNICODE definido
_tcsnbcnt _strncnt _mbsnbcnt _wcsncnt
_tcsnccnt _strncnt _mbsnbcnt n/a
_wcsncnt n/a n/a _mbsnbcnt
_wcsncnt n/a n/a _mbsnccnt
n/a n/a _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 mais 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 Multibyte-Character sequências
_mbsnbcat, _mbsnbcat_l