wcscoll
| 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) | |
| (C95) |
wandelt einen Breitzeichenstring so um, dass wcscmp dasselbe Ergebnis wie wcscoll erzielt (Funktion) |
| (C95) |
vergleicht zwei breite Zeichenketten (Funktion) |
| C++ Dokumentation für wcscoll
| |