Share via


fonctionsstrcoll

Chacune des fonctions strcoll et wcscoll compare deux chaînes en fonction du paramètre de catégorie LC_COLLATE de la page de codes des paramètres régionaux en cours d’utilisation. Chacune des fonctions _mbscoll compare deux chaînes en fonction de la page de codes multioctets en cours d’utilisation. Utilisez les coll fonctions pour les comparaisons de chaînes lorsqu’il existe une différence entre l’ordre du jeu de caractères et l’ordre des caractères lexicographiques dans la page de codes actuelle si la différence est intéressante pour la comparaison. Utilisez les fonctions cmp correspondantes pour tester uniquement pour l’égalité des chaînes.

strcoll, fonctions

SBCS Unicode MBCS Description
strcoll wcscoll _mbscoll Assembler deux chaînes
_stricoll _wcsicoll _mbsicoll Assembler deux chaînes (sensible à la casse)
_strncoll _wcsncoll _mbsncoll Assembler les premiers caractères count de deux chaînes
_strnicoll _wcsnicoll _mbsnicoll Assembler les premiers caractères count de deux chaînes (qui ne respectent pas la casse)

Notes

Les versions jeu de caractères codés sur un octet (SBCS) de ces fonctions (strcoll, stricoll, _strncoll et _strnicoll) comparent string1 et string2 conformément au paramètre de catégorie LC_COLLATE des paramètres régionaux actuels. Ces fonctions diffèrent des fonctions strcmp correspondantes en cela que les fonctions strcoll utilisent les informations de page de code de paramètres régionaux qui fournissent des séquences de classement. Pour les comparaisons de chaînes dans les paramètres régionaux dans lesquelles l’ordre du jeu de caractères et celui de l’ordre lexicographique des caractères diffèrent, les fonctions strcoll doivent être utilisées à la place des fonctions strcmp correspondantes. Pour plus d’informations sur LC_COLLATE, consultez setlocale.

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 », il n’est pas le cas : 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 dans un cas comme celui-ci, utilisez strcoll plutôt que strcmp. Vous pouvez aussi utiliser strxfrm sur les chaînes d'origine, puis utiliser strcmp sur les chaînes résultantes.

strcoll, stricoll, _strncoll et _strnicoll gèrent automatiquement les chaînes de caractères multioctets en fonction de la page de codes des paramètres régionaux en cours d’utilisation, comme le font leurs équivalents à caractères larges (Unicode). Les versions de jeu de caractères multioctets (MBCS) de ces fonctions cependant, assemblent les chaînes caractère par caractère en fonction de la page de codes multioctets en cours d’utilisation.

É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 de chaînes.

Voir aussi

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