std:: strcoll
|
Definiert im Header
<cstring>
|
||
|
int
strcoll
(
const
char
*
lhs,
const
char
*
rhs
)
;
|
||
Vergleicht zwei nullterminierte Byte-Strings gemäß der aktuellen Locale, wie durch die LC_COLLATE Kategorie definiert.
Inhaltsverzeichnis |
Parameter
| lhs, rhs | - | Zeiger auf die nullterminierten Byte-Strings zum Vergleichen |
Rückgabewert
- Negativer Wert, falls lhs kleiner als (vorangeht) rhs ist.
- 0 falls lhs gleich rhs ist.
- Positiver Wert, falls lhs größer als (folgt) 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 eine gebietsschemaspezifische Reihenfolge kann auf Zeichen mit diakritischen Zeichen angewendet werden. In einigen Gebietsschemata vergleichen Zeichengruppen als einzelne Sortiereinheiten . 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 <cstring> #include <iostream> int main() { std::setlocale(LC_COLLATE, "cs_CZ.utf8"); // Alternativ könnte ISO-8859-2 (auch bekannt als Latin-2) // auf einigen Betriebssystemen funktionieren: // std::setlocale(LC_COLLATE, "cs_CZ.iso88592"); const char* s1 = "hrnec"; const char* s2 = "chrt"; std::cout << "In the Czech locale: "; if (std::strcoll(s1, s2) < 0) std::cout << s1 << " before " << s2 << '\n'; else std::cout << s2 << " before " << s1 << '\n'; std::cout << "In lexicographical comparison: "; if (std::strcmp(s1, s2) < 0) std::cout << s1 << " before " << s2 << '\n'; else std::cout << s2 << " before " << s1 << '\n'; }
Ausgabe:
In the Czech locale: hrnec before chrt In lexicographical comparison: chrt before hrnec
Siehe auch
|
vergleicht zwei Breitzeichenketten 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 Zeichenkette, sodass
strcmp
das gleiche Ergebnis wie
strcoll
liefern würde
(Funktion) |
|
|
C-Dokumentation
für
strcoll
|
|