fonctions de strcoll
Chacune des fonctions d' strcoll et d' wcscoll compare deux chaînes en fonction de le paramètre de catégorie d' LC_COLLATE de la page de codes des paramètres régionaux en cours de utilisation.Chacune des fonctions d' _mbscoll compare deux chaînes en fonction de la page de codes multioctets en cours de utilisation.Utilisez les fonctions d' coll pour les comparaisons de chaînes lorsqu'il existe une différence entre l'ordre de jeu de caractères et l'ordre des caractères lexicographiques dans la page de codes actuelle et cette différence présente un intérêt pour la comparaison.Utilisez les fonctions correspondantes d' cmp pour déterminer uniquement l'égalité de chaînes.
fonctions de strcoll
SBCS |
Unicode |
MBCS |
Description |
---|---|---|---|
Grâce à deux chaînes |
|||
Grâce à deux chaînes (respectant la casse) |
|||
Grâce à les premiers caractères d' count de deux chaînes |
|||
Grâce à les premiers caractères d' count de deux chaînes (respectant la casse) |
Notes
Les versions (SBCS) de caractère codé sur un octet de ces fonctions (strcoll, stricoll, _strncoll, et _strnicoll) sont comparés string1 et string2 fonction de le paramètre de catégorie d' LC_COLLATE des paramètres régionaux.Ces fonctions diffèrent des fonctions correspondantes d' strcmp parce que les fonctions d' strcoll utilisent les informations de la page de codes des paramètres régionaux qui fournissent assembler des séquences.Pour les comparaisons de chaînes dans les paramètres régionaux dans lesquels l'ordre du jeu de caractères et l'ordre des caractères lexicographiques diffèrent, les fonctions d' strcoll doivent être utilisées plutôt que les fonctions correspondantes d' strcmp .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 des caractères lexicographiques.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 le même que celui lexicographique des caractères.Toutefois, dans certaines pages de codes européennes, par exemple, le caractère « a » (valeur 0x61) précède le caractère « ä » (valeur 0xE4) dans le jeu de caractères, mais le caractère « ä » précède le caractère « a » lexicographique.Pour effectuer une comparaison lexicographique dans une telle instance, utilisez strcoll plutôt qu' strcmp.Ou bien, vous pouvez utiliser strxfrm sur les chaînes d'origine, puis utilisez strcmp sur les chaînes résultantes.
strcoll, stricoll, _strncoll, et _strnicoll gèrent automatiquement des chaînes à caractères multioctets d'après la page de codes des paramètres régionaux en cours de utilisation, comme le font leurs équivalents à caractères larges (Unicode).Les versions (MBCS) à caractères multioctets de ces fonctions, toutefois, assemblent les chaînes sur une base de caractères d'après la page de codes multioctets en cours de utilisation.
Comme les fonctions d' coll assemblent les chaînes lexicographique pour la comparaison, tandis que d' cmp de fonctions le test uniquement à l'égalité de chaînes, les fonctions d' coll sont beaucoup plus lent que les versions correspondantes d' cmp .Par conséquent, les fonctions d' coll doivent être utilisées uniquement lorsqu'il existe une différence entre l'ordre de jeu de caractères et l'ordre des caractères lexicographiques dans la page de codes actuelle et cette différence présente un intérêt pour la comparaison de chaînes.
Voir aussi
Référence
_mbsnbcoll, _mbsnbcoll_l, _mbsnbicoll, _mbsnbicoll_l
strncmp, wcsncmp, _mbsncmp, _mbsncmp_l
_strnicmp, _wcsnicmp, _mbsnicmp, _strnicmp_l, _wcsnicmp_l, _mbsnicmp_l