Share via


strcoll, wcscoll, _mbscoll, _strcoll_l, _wcscoll_l, _mbscoll_l

Compare les chaînes à l’aide des paramètres régionaux actuels ou d’une catégorie d’état de conversion spécifiée LC_COLLATE .

Important

_mbscoll et _mbscoll_l ne peuvent pas être utilisées dans les applications qui s'exécutent dans Windows Runtime. Pour plus d’informations, consultez Fonctions CRT non prises en charge dans les applications de la plateforme Windows universelle.

Syntaxe

int strcoll(
   const char *string1,
   const char *string2
);
int wcscoll(
   const wchar_t *string1,
   const wchar_t *string2
);
int _mbscoll(
   const unsigned char *string1,
   const unsigned char *string2
);
int _strcoll_l(
   const char *string1,
   const char *string2,
   _locale_t locale
);
int wcscoll_l(
   const wchar_t *string1,
   const wchar_t *string2,
   _locale_t locale
);
int _mbscoll_l(
   const unsigned char *string1,
   const unsigned char *string2,
   _locale_t locale
);

Paramètres

string1, string2
Chaîne terminée par Null à comparer.

locale
Paramètres régionaux à utiliser.

Valeur retournée

Chacune de ces fonctions retourne une valeur indiquant la relation à string1string2, comme suit.

Valeur retournée Relation de string1 à string2
< 0 string1 inférieure à string2
0 string1 identique à string2
> 0 string1 supérieur à string2

Chacune de ces fonctions retourne _NLSCMPERROR en cas d’erreur. Pour utiliser _NLSCMPERROR, incluez STRING.H ou MBSTRING.H. wcscoll peut échouer si l’un string1 ou string2 l’autre contient NULL des codes à caractères larges en dehors du domaine de la séquence de classement. Quand une erreur se produit, wcscoll peut attribuer à errno la valeur EINVAL. Pour rechercher la présence d’une erreur dans un appel à wcscoll, affectez à errno la valeur 0, puis vérifiez errno après avoir appelé wcscoll.

Notes

Chacune de ces fonctions effectue une comparaison sensible à la casse de string1 et string2 en fonction de la page de codes en cours d’utilisation. Ces fonctions ne doivent être utilisées que lorsqu’il existe une différence entre l’ordre du jeu de caractères et l’ordre du caractère lexicographique dans la page de codes actuelle et que cette différence est intéressante pour la comparaison de chaînes.

Toutes ces fonctions valident leurs paramètres. Si l’un string1 ou string2 l’autre est un pointeur Null, ou s’il count est 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.

La comparaison des deux chaînes est une opération dépendante des paramètres régionaux dans la mesure où les différents paramètres régionaux ont des règles de classement de caractères qui leur sont propres. Les versions de ces fonctions sans suffixe _l utilisent les paramètres régionaux du thread actif pour ce comportement dépendant des paramètres régionaux ; les versions avec suffixe _l sont identiques à la fonction correspondante sans suffixe, sauf qu’elles utilisent les paramètres régionaux transmis comme paramètre à la place des paramètres régionaux actifs. 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
_tcscoll strcoll _mbscoll wcscoll

Spécifications

Routine En-tête requis
strcoll <string.h>
wcscoll <wchar.h>, <string.h>
_mbscoll, _mbscoll_l <mbstring.h>
_strcoll_l <string.h>
_wcscoll_l <wchar.h>, <string.h>

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

Voir aussi

Paramètres régionaux
Manipulation de chaîne
strcoll, fonctions
localeconv
_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l
setlocale, _wsetlocale
strcmp, wcscmp, _mbscmp
_stricmp, _wcsicmp, _mbsicmp, _stricmp_l, _wcsicmp_l, _mbsicmp_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l
strxfrm, wcsxfrm, _strxfrm_l, _wcsxfrm_l