_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt_mbsnccnt_l

Restituisce il numero di caratteri o byte entro un numero specificato.

Importante

Non è possibile usare _mbsnbcnt, _mbsnbcnt_l, _mbsnccnt e _mbsnccnt_l in applicazioni eseguite in Windows Runtime. Per altre informazioni, vedere Funzioni CRT non supportate nelle app della piattaforma UWP (Universal Windows Platform).

Sintassi

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
);

Parametri

str
Stringa da esaminare.

count
Numero di caratteri o byte da esaminare in str.

locale
Impostazioni locali da usare.

Valore restituito

_mbsnbcnt e _mbsnbcnt_l restituiscono il numero di byte trovati entro i primi count caratteri multibyte di str. _mbsnccnt e _mbsnccnt_l restituiscono il numero di caratteri trovati entro i primi count byte di str. Se viene rilevato un carattere Null prima del completamento dell'esame str , restituiscono il numero di byte o caratteri trovati prima del carattere Null. Se str contiene meno di count caratteri o byte, le funzioni restituiscono il numero di caratteri o byte nella stringa. Se count è minore di zero, le funzioni restituiscono 0. Nelle versioni precedenti, il valore restituito di queste funzioni è di tipo int anziché size_t.

_strncnt restituisce il numero di caratteri nei primi count byte della stringa a byte singolo str. _wcsncnt restituisce il numero di caratteri nei primi count caratteri wide della stringa a caratteri wide str.

Osservazioni:

_mbsnbcnt e _mbsnbcnt_l conteggiano il numero di byte trovati entro i primi count caratteri multibyte di str. _mbsnbcnt e _mbsnbcnt_l sostituiscono mtob e dovrebbero essere usate al posto di mtob.

_mbsnccnt e _mbsnccnt_l conteggiano il numero di caratteri trovati entro i primi count byte di str. Se _mbsnccnt e _mbsnccnt_l rilevano un carattere Null nel secondo byte di un carattere a byte doppio, il primo byte viene considerato anche null e non è incluso nel valore di conteggio restituito. _mbsnccnt e _mbsnccnt_l sostituiscono btom e dovrebbero essere usate al posto di btom.

Se str è un NULL puntatore o è count 0, queste funzioni richiamano il gestore di parametri non validi come descritto in Convalida dei parametri, errno viene impostato su EINVALe la funzione restituisce 0.

Il valore di output è interessato dall'impostazione dell'impostazione LC_CTYPE della categoria delle impostazioni locali. Per ulteriori informazioni, vedere setlocale. Le versioni di queste funzioni senza il suffisso _l usano le impostazioni locali correnti per questo comportamento dipendente dalle impostazioni locali. Le versioni con il suffisso _l sono identiche ma usano il parametro passato relativo alle impostazioni locali. Per altre informazioni, vedere Locale.

Per impostazione predefinita, lo stato globale di questa funzione è limitato all'applicazione. Per modificare questo comportamento, vedere Stato globale in CRT.

Mapping di routine di testo generico

Ciclo _UNICODE e _MBCS non definito _MBCS definito _UNICODE definito
_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

Requisiti

Ciclo Intestazione obbligatoria
_mbsnbcnt <mbstring.h>
_mbsnbcnt_l <mbstring.h>
_mbsnccnt <mbstring.h>
_mbsnccnt_l <mbstring.h>
_strncnt <tchar.h>
_wcsncnt <tchar.h>

Per altre informazioni sulla compatibilità, vedere Compatibility (Compatibilità).

Esempio

// 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");
}

Output

The first 10 characters are single-byte.

Vedi anche

Manipolazione delle stringhe
impostazioni locali
Interpretazione di sequenze di caratteri multibyte
_mbsnbcat, _mbsnbcat_l