Partager via


_strncnt, _wcsncnt, _mbsnbcnt, _mbsnbcnt_l, _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 EINVALsur , et la fonction retourne 0.

La valeur de sortie est affectée par le paramètre de 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 routine de texte générique

Routine _UNICODE et _MBCS non défini _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îne
Paramètres régionaux
Interprétation des séquences de caractères multioctets
_mbsnbcat, _mbsnbcat_l