Namensräume
Varianten
Aktionen

wcscoll

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

Vergleicht zwei nullterminierte Breitzeichenstrings gemäß der Sortierreihenfolge, die durch die LC_COLLATE-Kategorie der aktuell installierten Locale definiert ist.

Inhalt

[edit] Parameter

lhs, rhs - Zeiger auf die zu vergleichenden nullterminierten Breitzeichenketten

[edit] Rückgabewert

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

0, wenn lhs gleich rhs ist.

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

[edit] Hinweise

Die Sortierreihenfolge ist die Wörterbuchreihenfolge: Die Position des Buchstabens im nationalen Alphabet (seine Äquivalenzklasse) hat Vorrang vor Groß-/Kleinschreibung oder Varianten. Innerhalb einer Äquivalenzklasse werden Kleinbuchstaben vor ihren Großbuchstabenäquivalenten sortiert, und die locale-spezifische Reihenfolge kann für Zeichen mit diakritischen Zeichen gelten. In einigen Locales werden Zeichengruppen als einzelne Sortiereinheiten verglichen. Zum Beispiel folgt "ch" im Tschechischen auf "h" und geht "i" voraus, und "dzs" im Ungarischen folgt auf "dz" und geht "g" voraus.

[edit] 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

[edit] Referenzen

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

[edit] Siehe auch

vergleicht zwei Strings gemäß der aktuellen Locale
(Funktion) [bearbeiten]
wandelt einen Breitzeichenstring so um, dass wcscmp dasselbe Ergebnis wie wcscoll erzielt
(Funktion) [bearbeiten]
(C95)
vergleicht zwei breite Zeichenketten
(Funktion) [bearbeiten]
C++ Dokumentation für wcscoll