Namespaces
Variants

wcscoll

From cppreference.net
< c ‎ | string ‎ | wide
Definiert im Header <wchar.h>
int wcscoll ( const wchar_t * lhs, const wchar_t * rhs ) ;
(seit C95)

Vergleicht zwei nullterminierte Breitzeichen-Zeichenketten gemäß der durch die LC_COLLATE Kategorie der aktuell installierten Locale definierten Sortierreihenfolge.

Inhaltsverzeichnis

Parameter

lhs, rhs - Zeiger auf die nullterminierten Breitzeichenketten zum Vergleichen

Rückgabewert

Negativer Wert, falls 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 eine höhere Priorität als seine Groß-/Kleinschreibung oder Variante. Innerhalb einer Äquivalenzklasse werden Kleinbuchstaben vor ihren Großbuchstaben-Äquivalenten sortiert, und eine gebietsschemaspezifische Reihenfolge kann auf Zeichen mit diakritischen Zeichen angewendet werden. In einigen Gebietsschemata werden Gruppen von Zeichen 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 <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");
}

Mögliche 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

Referenzen

  • C11-Standard (ISO/IEC 9899:2011):
  • 7.29.4.4.2 Die wcscoll-Funktion (S. 433-434)
  • C99-Standard (ISO/IEC 9899:1999):
  • 7.24.4.4.2 Die wcscoll-Funktion (S. 379-380)

Siehe auch

vergleicht zwei Zeichenketten gemäß dem aktuellen Gebietsschema
(Funktion)
(C95)
transformiert eine Breitzeichenkette so, dass wcscmp das gleiche Ergebnis liefern würde wie wcscoll
(Funktion)
(C95)
vergleicht zwei Breitzeichenketten
(Funktion)
C++-Dokumentation für wcscoll