strcoll
|
Défini dans l'en-tête
<string.h>
|
||
|
int
strcoll
(
const
char
*
lhs,
const
char
*
rhs
)
;
|
||
Compare deux chaînes d'octets terminées par un caractère nul selon les paramètres régionaux actuels tels que définis par la catégorie LC_COLLATE .
Table des matières |
Paramètres
| lhs, rhs | - | pointeurs vers les chaînes d'octets terminées par un caractère nul à comparer |
Valeur de retour
- Valeur négative si lhs est inférieur à (précède) rhs .
- 0 si lhs est égal à rhs .
- Valeur positive si lhs est supérieur à (suit) rhs .
Notes
L'ordre de collation est l'ordre du dictionnaire : la position de la lettre dans l'alphabet national (sa classe d'équivalence ) a une priorité plus élevée que sa casse ou sa variante. Au sein d'une classe d'équivalence, les caractères minuscules se trient avant leurs équivalents majuscules et l'ordre spécifique aux paramètres régionaux peut s'appliquer aux caractères avec diacritiques. Dans certaines régions, des groupes de caractères sont comparés comme des unités de collation uniques. Par exemple, "ch" en tchèque suit "h" et précède "i" , et "dzs" en hongrois suit "dz" et précède "g" .
Exemple
#include <locale.h> #include <stdio.h> #include <string.h> int main(void) { setlocale(LC_COLLATE, "cs_CZ.utf8"); // Alternativement, ISO-8859-2 (alias Latin-2) // peut également fonctionner sur certains systèmes d'exploitation : // setlocale(LC_COLLATE, "cs_CZ.iso88592"); const char* s1 = "hrnec"; const char* s2 = "chrt"; printf("Dans les paramètres régionaux tchèques : "); if (strcoll(s1, s2) < 0) printf("%s avant %s\n", s1, s2); else printf("%s avant %s\n", s2, s1); printf("En comparaison lexicographique : "); if (strcmp(s1, s2) < 0) printf("%s avant %s\n", s1, s2); else printf("%s avant %s\n", s2, s1); }
Sortie :
Dans les paramètres régionaux tchèques : hrnec avant chrt En comparaison lexicographique : chrt avant hrnec
Références
- Norme C23 (ISO/CEI 9899:2024) :
-
- 7.24.4.3 Fonction strcoll (p: TBD)
- Norme C17 (ISO/CEI 9899:2018) :
-
- 7.24.4.3 La fonction strcoll (p: TBD)
- Norme C11 (ISO/CEI 9899:2011):
-
- 7.24.4.3 La fonction strcoll (p: 366)
- Norme C99 (ISO/CEI 9899:1999) :
-
- 7.21.4.3 La fonction strcoll (p: 329)
- Norme C89/C90 (ISO/IEC 9899:1990) :
-
- 4.11.4.3 La fonction strcoll
Voir aussi
|
(C95)
|
compare deux chaînes larges selon la locale actuelle
(fonction) |
|
transforme une chaîne pour que strcmp produise le même résultat que strcoll
(fonction) |
|
|
(C95)
|
transforme une chaîne large pour que
wcscmp
produise le même résultat que
wcscoll
(fonction) |
|
compare deux chaînes
(fonction) |
|
|
Documentation C++
pour
strcoll
|
|