Namespaces
Variants

std:: wcscoll

From cppreference.net
Défini dans l'en-tête <cwchar>
int wcscoll ( const wchar_t * lhs, const wchar_t * rhs ) ;

Compare deux chaînes larges terminées par un caractère nul selon les paramètres régionaux les plus récemment installés par std::setlocale , tels que définis par la catégorie LC_COLLATE .

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 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 <clocale>
#include <iostream>
void try_compare(const wchar_t* p1, const wchar_t* p2)
{
    if (std::wcscoll(p1, p2) < 0)
        std::wcout << p1 << " before " << p2 << '\n';
    else
        std::wcout << p2 << " before " << p1 << '\n';
}
int main()
{
    std::setlocale(LC_ALL, "en_US.utf8");
    std::wcout << "In the American locale: ";
    try_compare(L"hrnec", L"chrt");
    std::setlocale(LC_COLLATE, "cs_CZ.utf8");
    std::wcout << "In the Czech locale: ";
    try_compare(L"hrnec", L"chrt");
    std::setlocale(LC_COLLATE, "en_US.utf8");
    std::wcout << "In the American locale: ";
    try_compare(L"år", L"ängel");
    std::setlocale(LC_COLLATE, "sv_SE.utf8");
    std::wcout << "In the Swedish locale: ";
    try_compare(L"år", L"ängel");
}

Sortie :

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

Voir aussi

compare deux chaînes selon la locale actuelle
(fonction)
[virtual]
compare deux chaînes en utilisant les règles de collation de cette facette
(fonction membre protégée virtuelle de std::collate<CharT> )
transforme une chaîne large pour que wcscmp produise le même résultat que wcscoll
(fonction)
Documentation C pour wcscoll