strcoll
-Funktionen
Jede der strcoll
- und wcscoll
-Funktionen vergleicht zwei Zeichenfolgen gemäß der Kategorieneinstellung für LC_COLLATE
der aktuell verwendeten Gebietsschemacodepage. Jede der _mbscoll
-Funktionen vergleicht zwei Zeichenfolgen gemäß der aktuell verwendeten Multibytecodepage. Verwenden Sie die coll
Funktionen für Zeichenfolgenvergleiche, wenn es einen Unterschied zwischen der Zeichensatzreihenfolge und der lexikografischen Zeichenreihenfolge auf der aktuellen Codeseite gibt, wenn der Unterschied für den Vergleich von Interesse ist. Verwenden Sie die entsprechenden cmp
-Funktionen, um nur Gleichheit der Zeichenfolgen zu prüfen.
strcoll-Funktionen
SBCS | Unicode | MBCS | Beschreibung |
---|---|---|---|
strcoll |
wcscoll |
_mbscoll |
Sortieren von zwei Zeichenfolgen |
_stricoll |
_wcsicoll |
_mbsicoll |
Sortieren von zwei Zeichenfolgen (ohne Berücksichtigung von Groß-/Kleinschreibung) |
_strncoll |
_wcsncoll |
_mbsncoll |
Sortieren der ersten count Zeichen von zwei Zeichenfolgen |
_strnicoll |
_wcsnicoll |
_mbsnicoll |
Sortieren der ersten count Zeichen zweier Zeichenfolgen (ohne Berücksichtigung von Groß-/Kleinschreibung) |
Hinweise
Die Versionen dieser Funktionen im Einzelbyte-Zeichensatz (Single-Byte Character Set, SBCS) (strcoll
, stricoll
, _strncoll
und _strnicoll
) vergleichen string1
und string2
gemäß der Kategorieneinstellung LC_COLLATE
des aktuellen Gebietsschemas. Diese Funktionen unterscheiden sich von den entsprechenden strcmp
-Funktionen dahingehend, dass die strcoll
-Funktionen Gebietsschemacodepageinformationen mit Sortierreihenfolgen verwenden. Für Zeichenfolgenvergleiche in Gebietsschemas, in denen die Reihenfolge des Zeichensatzes und die lexikografische Zeichenreihenfolge abweichen, sollten die strcoll
-Funktionen statt der entsprechenden strcmp
-Funktionen verwendet werden. Weitere Informationen zu LC_COLLATE
finden Sie unter setlocale
.
Bei manchen Codepages und entsprechenden Zeichensätzen kann die Reihenfolge der Zeichen im Zeichensatz möglicherweise von der lexikografischen Zeichenreihenfolge abweichen. Im Gebietsschema "C" ist dies nicht der Fall: Die Reihenfolge der Zeichen im ASCII-Zeichensatz entspricht der lexikographischen Reihenfolge der Zeichen. In bestimmten europäischen Codepages beispielsweise steht im Zeichensatz das Zeichen "a" (Wert 0x61) vor dem Zeichen "ä" (Wert 0xE4), das Zeichen "ä" steht lexikografisch gesehen jedoch vor dem Zeichen "a". Um in solch einem Fall einen lexikografischen Vergleich durchzuführen, verwenden Sie strcoll
statt strcmp
. Sie können auch strxfrm
für die ursprünglichen Zeichenfolgen verwenden, und dann strcmp
für die resultierenden Zeichenfolgen.
strcoll
, stricoll
, _strncoll
und _strnicoll
verarbeiten automatisch Multibytezeichenfolgen entsprechend der derzeit verwendeten Gebietsschemacodepage, wie es bei den jeweiligen äquivalenten Breitzeichen (Unicode) der Fall ist. Die Versionen dieser Funktionen im Multibyte-Zeichensatz (Multibyte-Character Set, MBCS) sortieren Zeichenfolgen jedoch auf Zeichenbasis entsprechend der aktuell verwendeten Multibytecodepage.
Da die coll
-Funktionen Zeichenfolgen für Vergleiche lexikografisch sortieren, während die cmp
-Funktionen nur die Zeichenfolgengleichheit testen, sind die coll
-Funktionen wesentlich langsamer als die entsprechenden cmp
-Versionen. Daher sollten die coll
Funktionen nur verwendet werden, wenn es einen Unterschied zwischen der Zeichensatzreihenfolge und der lexikografischen Zeichenreihenfolge auf der aktuellen Codeseite gibt und dieser Unterschied für den Zeichenfolgenvergleich von Interesse ist.
Siehe auch
Gebietsschema
Zeichenfolgenbearbeitung
localeconv
_mbsnbcoll
, , _mbsnbcoll_l
_mbsnbicoll
_mbsnbicoll_l
setlocale
, _wsetlocale
strcmp
, wcscmp
_mbscmp
strncmp
, , wcsncmp
_mbsncmp
_mbsncmp_l
_strnicmp
, , _wcsnicmp
_mbsnicmp
, _strnicmp_l
, , _wcsnicmp_l
_mbsnicmp_l
strxfrm
, , wcsxfrm
_strxfrm_l
_wcsxfrm_l