strcoll 函式

每個strcoll和wcscoll函式會比較兩個字串,根據LC_COLLATE的地區設定字碼頁,目前正在使用中的分類設定。每個_mbscoll函式會比較兩個字串根據目前使用中的多位元組字碼頁。使用coll時不一致的字元組的順序和 lexicographic 的字元順序在目前的字碼頁,而這項差異是想要進行比較的字串比較函式。使用對應的cmp函式只適用於測試字串是否相等。

strcoll 函式

SBCS

Unicode

MBCS

描述

strcoll

wcscoll

_mbscoll

自動分頁的兩個字串

_stricoll

_wcsicoll

_mbsicoll

自動分頁的兩個字串 (不區分大小寫)

_strncoll

_wcsncoll

_mbsncoll

自動分頁的第一次count的兩個字串的字元

_strnicoll

_wcsnicoll

_mbsnicoll

自動分頁的第一次count (不區分大小寫) 的兩個字串的字元

備註

這些函式的單一位元組字元集 (SBCS) 版本 (strcoll, stricoll, _strncoll,以及_strnicoll) 比較string1和string2根據LC_COLLATE目前的地區設定的分類設定。這些函式會不同於對應的strcmp函式中的strcoll函式會使用提供定序順序的地區設定字碼頁資訊。字串比較在地區設定中的字集的順序和 lexicographic 的字元順序不同, strcoll應該使用函數,而不是對應的strcmp函式。如需有關LC_COLLATE,請參閱 setlocale

對於某些字碼頁和相對應的字元集,字元集中的字元的順序可能不同於 lexicographic 的字元順序。在"C"地區設定,這並不大小寫: 字元與 ASCII 字元集中的順序等同於 lexicographic 字元的順序。不過,在特定的歐洲的字碼頁,例如,字元 'a' (值 0x61) 之前 'ä' (0xE4) 中的字元設定值,但該字元的字元 'ä' 之前的字元 'a' 您。若要執行 lexicographic 的比較,這類的執行個體中,使用strcoll而不是strcmp。或者,您可以使用strxfrm上的原始字串,然後使用strcmp上產生的字串。

strcollstricoll, _strncoll,以及_strnicoll一樣寬字元 (Unicode) 對應的部分,會自動處理多位元組字元字串根據目前使用中的地區設定字碼頁。多位元組字元 (MBCS) 版本,這些函式,但是,自動分頁根據成多位元組字碼頁目前普遍用於以字元為基礎的字串。

因為coll函式自動分頁比較,您的字串,而cmp函式只是測試字串是否相等, coll函式都比不上對應cmp版本。因此, coll不一致的字元組的順序和 lexicographic 的字元順序在目前的字碼頁,而這項差異是值得注意的字串比較時,才應該使用的函式。

請參閱

參考

地區設定

字串操作 (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