_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 EINVAL
e 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