Partager via


_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l

Compare n octets de deux chaînes de caractères multioctets en utilisant les informations de la page de codes multioctets.

Important

Cette API ne peut pas être utilisée 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

int _mbsnbcoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _mbsnbcoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);
int _mbsnbicoll(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count
);
int _mbsnbicoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   size_t count,
   _locale_t locale
);

Paramètres

string1, string2
Chaînes à comparer.

count
Nombre d'octets à comparer.

locale
Paramètres régionaux à utiliser.

Valeur retournée

La valeur de retour indique la relation des sous-chaînes de string1 et de string2.

Valeur retournée Description
< 0 La sous-chaîne de string1 est inférieure à la sous-chaîne de string2.
0 La sous-chaîne de string1 est identique à la sous-chaîne de string2.
> 0 La sous-chaîne de string1 est supérieure à la sous-chaîne de string2.

Si string1 ou string2 est NULL supérieur ou count supérieur INT_MAX, le gestionnaire de paramètres non valide est appelé, comme décrit dans la validation des paramètres. Si l'exécution est autorisée à se poursuivre, ces fonctions retournent _NLSCMPERROR et définissent errno avec la valeur EINVAL. Pour utiliser _NLSCMPERROR, incluez String.h ou Mbstring.h.

Notes

Chacune de ces fonctions assemble, au moins, les count premiers caractères de string1 et de string2, et retourne une valeur qui indique la relation entre les sous-chaînes résultantes de string1 et string2. Si l’octet final dans la sous-chaîne ou est un octet de string1string2 prospect, il n’est pas inclus dans la comparaison ; ces fonctions comparent uniquement les caractères complets dans les sous-chaînes. _mbsnbicoll est une version de _mbsnbcoll respectant la casse. Comme _mbsnbcmp et _mbsnbicmp, _mbsnbcoll et _mbsnbicoll assemblent les deux chaînes de caractères multioctets en fonction de l’ordre lexicographique spécifié par la page de codes multioctets en cours d’utilisation.

Pour certaines pages de codes et les jeux de caractères correspondants, l’ordre des caractères dans le jeu de caractères peut différer de l’ordre lexicographique des caractères. Dans les paramètres régionaux « C », l’ordre des caractères dans le jeu de caractères ASCII est identique à l’ordre lexicographique des caractères. Cependant, dans certaines pages de code européennes, par exemple, le caractère « a » (valeur 0x61) précède le caractère « ä » (valeur 0xE4) dans le jeu de caractères, alors que d’un point de vue lexicographique, le caractère « ä » précède le caractère « a ». Pour effectuer une comparaison lexicographique de chaînes par octets dans un cas comme celui-ci, utilisez _mbsnbcoll plutôt que _mbsnbcmp ; pour vérifier uniquement l’égalité des chaînes, utilisez _mbsnbcmp.

Étant donné que les fonctions coll assemblent des chaînes de façon lexicographique en vue des comparer, alors que les fonctions cmp testent simplement l’égalité des chaînes, les fonctions coll sont beaucoup plus lentes que les versions cmp correspondantes. Par conséquent, les coll fonctions doivent être utilisées uniquement lorsqu’il existe une différence entre l’ordre de jeu de caractères et l’ordre de caractère lexicographique dans la page de codes actuelle et que cette différence est intéressante pour la comparaison.

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 Tchar.h _UNICODE et _MBCS non défini _MBCS Défini _UNICODE Défini
_tcsncoll _strncoll _mbsnbcoll _wcsncoll
_tcsncoll_l _strncoll_l _mbsnbcoll_l _wcsncoll_l
_tcsnicoll _strnicoll _mbsnbicoll _wcsnicoll
_tcsnicoll_l _strnicoll_l _mbsnbicoll_l _wcsnicoll_l

Spécifications

Routine En-tête requis
_mbsnbcoll <mbstring.h>
_mbsnbcoll_l <mbstring.h>
_mbsnbicoll <mbstring.h>
_mbsnbicoll_l <mbstring.h>

Pour plus d’informations sur la compatibilité, consultez Compatibility.

Voir aussi

Manipulation de chaîne
_mbsnbcat, _mbsnbcat_l
_mbsnbcmp, _mbsnbcmp_l
_mbsnbicmp, _mbsnbicmp_l
strcoll, fonctions
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l