Namespaces
Variants

std:: wcscoll

From cppreference.net
Definiert in Header <cwchar>
int wcscoll ( const wchar_t * lhs, const wchar_t * rhs ) ;

Vergleicht zwei nullterminierte Breitzeichenketten gemäß dem zuletzt durch std::setlocale installierten Gebietsschema, wie durch die Kategorie LC_COLLATE definiert.

Inhaltsverzeichnis

Parameter

lhs, rhs - Zeiger auf die nullterminierten Breitzeichenketten zum Vergleichen

Rückgabewert

Negativer Wert, wenn lhs kleiner als (vorangeht) rhs ist.

0 wenn lhs gleich rhs ist.

Positiver Wert, wenn lhs größer als (folgt nach) rhs ist.

Hinweise

Die Sortierreihenfolge ist die Wörterbuchreihenfolge: Die Position des Buchstabens im nationalen Alphabet (seine Äquivalenzklasse ) hat höhere Priorität als seine Groß-/Kleinschreibung oder Variante. Innerhalb einer Äquivalenzklasse werden Kleinbuchstaben vor ihren Großbuchstaben-Äquivalenten sortiert, und die sprachspezifische Reihenfolge kann auf Zeichen mit diakritischen Zeichen angewendet werden. In einigen Sprachen werden Zeichengruppen als einzelne Sortiereinheiten verglichen. Zum Beispiel folgt "ch" im Tschechischen auf "h" und geht vor "i" , und "dzs" im Ungarischen folgt auf "dz" und geht vor "g" .

Beispiel

#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");
}

Ausgabe:

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

Siehe auch

vergleicht zwei Zeichenketten gemäß der aktuellen Locale
(Funktion)
[virtual]
vergleicht zwei Zeichenketten unter Verwendung der Kollationsregeln dieser Facette
(virtuelle geschützte Memberfunktion von std::collate<CharT> )
transformiert eine Wide-String, sodass wcscmp das gleiche Ergebnis wie wcscoll liefern würde
(Funktion)
C-Dokumentation für wcscoll