Namespaces
Variants

wcscoll

From cppreference.net
< c ‎ | string ‎ | wide
Défini dans l'en-tête <wchar.h>
int wcscoll ( const wchar_t * lhs, const wchar_t * rhs ) ;
(depuis C95)

Compare deux chaînes larges terminées par un caractère nul selon l'ordre de collation défini par la LC_COLLATE catégorie de la locale actuellement installée.

Table des matières

Paramètres

lhs, rhs - pointeurs vers les chaînes larges 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 à la locale peut s'appliquer aux caractères avec diacritiques. Dans certaines locales, 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 <stdio.h>
#include <wchar.h>
#include <locale.h>
void try_compare(const wchar_t* p1, const wchar_t* p2)
{
    if(wcscoll(p1, p2) < 0)
        printf("%ls before %ls\n", p1, p2);
    else
        printf("%ls before %ls\n", p2, p1);
}
int main(void)
{
    setlocale(LC_ALL, "en_US.utf8");
    printf("In the American locale: ");
    try_compare(L"hrnec", L"chrt");
    setlocale(LC_COLLATE, "cs_CZ.utf8");
    printf("In the Czech locale: ");
    try_compare(L"hrnec", L"chrt");
    setlocale(LC_COLLATE, "en_US.utf8");
    printf("In the American locale: ");
    try_compare(L"år", L"ängel");
    setlocale(LC_COLLATE, "sv_SE.utf8");
    printf("In the Swedish locale: ");
    try_compare(L"år", L"ängel");
}

Sortie possible :

In the American locale: chrt before hrnec
In the Czech locale: hrnec before chrt
In the American locale: ängel before år
In the Swedish locale: år before ängel

Références

  • Norme C11 (ISO/CEI 9899:2011) :
  • 7.29.4.4.2 La fonction wcscoll (p: 433-434)
  • Norme C99 (ISO/CEI 9899:1999) :
  • 7.24.4.4.2 La fonction wcscoll (p: 379-380)

Voir aussi

compare deux chaînes en fonction des paramètres régionaux actuels
(fonction)
(C95)
transforme une chaîne large pour que wcscmp produise le même résultat que wcscoll
(fonction)
(C95)
compare deux chaînes larges
(fonction)
Documentation C++ pour wcscoll