Compartilhar via


_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, _mbsnccnt_l

Retorna o número de caracteres ou de bytes em uma contagem especificada.

Importante

_mbsnbcnt, _mbsnbcnt_l, _mbsnccnt, e _mbsnccnt_l não podem ser usados em aplicativos executados no Tempo de Execução do Windows.Para obter mais informações, consulte Funções CRT sem suporte pelo /ZW.

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 serem examinados em str.

  • locale
    Localidade a ser usada.

Valor de retorno

_mbsnbcnt e _mbsnbcnt_l retornam o número de bytes localizados no primeiro count de caracteres de multibyte de str. _mbsnccnt e _mbsnccnt_l retornam o número de caracteres localizados no primeiro count de bytes de str. Se um caractere NULO for encontrado antes que o exame de str conclua, será retornado o número de bytes ou caracteres encontrados antes do caractere NULO. Se str consistir em menos caracteres ou bytes que count, eles retornarão o número de caracteres ou bytes na cadeia de caracteres. Se count for menor que zero, retornará 0. Em versões anteriores, essas funções tinham um valor de retorno do tipo int em vez de size_t.

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

Comentários

_mbsnbcnt e _mbsnbcnt_l contam o número de bytes localizados no primeiro count de caracteres de 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 localizados no primeiro count de bytes de str. Se _mbsnccnt e _mbsnccnt_l encontrarem um NULL no segundo byte de um caractere de byte duplo, o primeiro byte também será considerado NULL 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 ponteiro nulo ou se count for 0, essas funções chamarão o manipulador de parâmetro inválido, conforme descrito em Validação do parâmetro, errno é definido como EINVAL, a função retorna 0.

O valor de saída é afetado pela configuração da categoria LC_CTYPE de localidade. Para obter mais informações, consulte setlocale. As versões dessas funções sem o sufixo _l usam a localidade atual para esse comportamento dependente da localidade; as versões com o sufixo _l são idênticas, exceto que elas usam o parâmetro de localidade informado. Para obter mais informações, consulte Localidade.

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.

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 chamadas de plataformas.

Consulte também

Referência

Manipulação da cadeia de caracteres (CRT)

Localidade

Interpretação de sequências de caracteres multibyte

_mbsnbcat, _mbsnbcat_l