Freigeben über


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