wcscoll
|
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
|
|