_strncnt
, , _wcsncnt
, _mbsnbcnt_l
_mbsnbcnt
, , _mbsnccnt
_mbsnccnt_l
Retourne le nombre de caractères ou d’octets indiqué dans un paramètre count.
Important
Les fonctions _mbsnbcnt
, _mbsnbcnt_l
, _mbsnccnt
et _mbsnccnt_l
ne peuvent pas être utilisées dans les applications qui s'exécutent dans le Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.
Syntaxe
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
);
Paramètres
str
Chaîne à examiner.
count
Nombre de caractères ou d’octets à examiner dans str
.
locale
Paramètres régionaux à utiliser.
Valeur retournée
_mbsnbcnt
et _mbsnbcnt_l
retournent le nombre d’octets trouvés dans les count
premiers caractères multioctets de str
. _mbsnccnt
et _mbsnccnt_l
retournent le nombre de caractères trouvés dans les count
premiers octets de str
. Si un caractère Null est rencontré avant la fin de str
l’examen, ils retournent le nombre d’octets ou de caractères trouvés avant le caractère Null. Si str
comporte moins de count
caractères ou octets, elles retournent le nombre de caractères ou d’octets contenus dans la chaîne. Si la valeur de count
est inférieure à zéro, elles retournent 0. Dans leurs versions précédentes, ces fonctions retournaient une valeur de type int
et non size_t
.
_strncnt
retourne le nombre de caractères contenus dans les count
premiers octets de la chaîne codée sur un octet str
. _wcsncnt
retourne le nombre de caractères contenus dans les count
premiers caractères larges de la chaîne de caractères larges str
.
Notes
_mbsnbcnt
et _mbsnbcnt_l
comptent le nombre d’octets trouvés dans les count
premiers caractères multioctets de str
. _mbsnbcnt
et _mbsnbcnt_l
remplacent mtob
et doivent être utilisées à la place de mtob
.
_mbsnccnt
et _mbsnccnt_l
comptent le nombre de caractères trouvés dans les count
premiers octets de str
. Si _mbsnccnt
et _mbsnccnt_l
rencontrez un caractère Null dans le deuxième octet d’un caractère double octet, le premier octet est également considéré comme null et n’est pas inclus dans la valeur de nombre retourné. _mbsnccnt
et _mbsnccnt_l
remplacent btom
et doivent être utilisées à la place de btom
.
S’il str
s’agit d’un NULL
pointeur ou est count
égal à 0, ces fonctions appellent le gestionnaire de paramètres non valide, comme décrit dans la validation de paramètre, errno
est défini EINVAL
sur , et la fonction retourne 0.
La valeur de la sortie est affectée par la valeur du paramètre de la catégorie LC_CTYPE
des paramètres régionaux. Pour plus d’informations, consultez setlocale
. Les versions de ces fonctions sans le suffixe _l
utilisent les paramètres régionaux pour ce comportement dépendant des paramètres régionaux ; les versions avec le suffixe _l
sont identiques, sauf qu'elles utilisent à la place les paramètres régionaux transmis. Pour plus d’informations, consultez Locale.
Par défaut, l’état global de cette fonction est limité à l’application. Pour modifier ce comportement, consultez État global dans le CRT.
Mappages de routines de texte générique
Routine | _UNICODE et _MBCS non définis |
_MBCS défini |
_UNICODE défini |
---|---|---|---|
_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 |
Spécifications
Routine | En-tête requis |
---|---|
_mbsnbcnt |
<mbstring.h> |
_mbsnbcnt_l |
<mbstring.h> |
_mbsnccnt |
<mbstring.h> |
_mbsnccnt_l |
<mbstring.h> |
_strncnt |
<tchar.h> |
_wcsncnt |
<tchar.h> |
Pour plus d’informations sur la compatibilité, consultez Compatibility.
Exemple
// 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");
}
Sortie
The first 10 characters are single-byte.
Voir aussi
Manipulation de chaînes
Paramètres régionaux
Interprétation des séquences de caractères multioctets
_mbsnbcat
, _mbsnbcat_l