Freigeben über


strcoll-Funktionen

Jede der strcoll und wcscoll-Funktionen vergleicht zwei Zeichenfolgen anhand der LC_COLLATE Kategorieneinstellung der Gebietsschema-Codepage derzeit. Jede der Funktionen _mbscoll vergleicht zwei Zeichenfolgen anhand der Mehrbyte-Codepage derzeit. Verwenden Sie die Funktionen coll für Zeichenfolgenvergleiche, wenn es einen Unterschied zwischen der Zeichensatzreihenfolge gibt und der lexikografischen Reihenfolge in der aktuellen Codepage und diesem Unterschied relevant für den Vergleich ist. Verwenden Sie die entsprechenden cmp-Funktionen, um nur für Zeichenfolgengleichheit zu testen.

strcoll Funktionen

SBCS

Unicode

MBCS

Beschreibung

strcoll

wcscoll

_mbscoll

Sortieren Sie zwei Zeichenfolgen

_stricoll

_wcsicoll

_mbsicoll

Sortieren Sie zwei Zeichenfolgen (Groß-/Kleinschreibung nicht berücksichtigt)

_strncoll

_wcsncoll

_mbsncoll

Sortieren Sie erste count Zeichen von zwei Zeichenfolgen

_strnicoll

_wcsnicoll

_mbsnicoll

Sortieren Sie erste count Zeichen von zwei Zeichenfolgen (Groß-/Kleinschreibung nicht berücksichtigt)

Hinweise

Die Einzelbytezeichen (sbcs)- Versionen dieser Funktionen (strcoll, stricoll, _strncoll und _strnicoll) vergleichen string1 und string2 anhand der LC_COLLATE Kategorieneinstellung des aktuellen Gebietsschemas. Diese Funktionen unterscheiden sich von der entsprechenden strcmp-Funktionen darin, dass die Funktionen strcoll Gebietsschemacodepageinformationen verwenden Sortierreihenfolgen, die bereitstellt. Für Gebietsschemas, Zeichenfolgenvergleiche in den in denen die Zeichensatzreihenfolge und die lexikografische Reihenfolge unterscheiden, sollte das strcoll-Funktionen anstatt die entsprechenden strcmp-Funktionen verwendet werden. Weitere Informationen zu LC_COLLATE finden Sie unter setlocale.

Für mehrere Codepages und entsprechende Zeichensätze unterscheidet möglicherweise die Reihenfolge der Zeichen im Zeichensatz sich von der lexikografischen Reihenfolge. Im "C "-Gebietsschema ist dies nicht der Fall: Die Reihenfolge der Zeichen im ASCII-Zeichensatz entspricht der lexikografischen 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 einen lexikografischen Vergleich in einer solchen Instanz auszuführen, verwenden Sie strcoll anstelle von strcmp. Alternativ können Sie strxfrm auf den ursprünglichen Zeichenfolgen verwenden, verwenden strcmp auf den Ergebniszeichenfolgen.

strcoll, stricoll, _strncoll und _strnicoll verarbeiten automatisch entsprechend der Mehrbyte-Zeichenfolgen Gebietsschema-Codepage derzeit, wie ihre Äquivalente des Breitzeichens (Unicode) möglich. Die Mehrbytezeichen (mbcs)- Versionen dieser Funktionen sortieren jedoch Zeichenfolgen auf einer Zeichenbasis entsprechend der Mehrbyte-Codepage derzeit.

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, sollte das coll-Funktionen verwendet werden, wenn es einen Unterschied zwischen der Zeichensatzreihenfolge gibt und der lexikografischen Reihenfolge in der aktuellen Codepage und diesem Unterschied relevant für den Zeichenfolgenvergleich ist.

Siehe auch

Referenz

Locale

Zeichenfolgenbearbeitung (CRT)

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