strcoll 函式
每個strcoll和wcscoll函式會比較兩個字串,根據LC_COLLATE的地區設定字碼頁,目前正在使用中的分類設定。 每個_mbscoll函式會比較兩個字串根據目前使用中的多位元組字碼頁。 使用coll時不一致的字元組的順序和 lexicographic 的字元順序在目前的字碼頁,而這項差異是想要進行比較的字串比較函式。 使用對應的cmp函式只適用於測試字串是否相等。
strcoll 函式
SBCS |
Unicode |
MBCS |
描述 |
---|---|---|---|
自動分頁的兩個字串 |
|||
自動分頁的兩個字串 (不區分大小寫) |
|||
自動分頁的第一次count的兩個字串的字元 |
|||
自動分頁的第一次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 的字元順序在目前的字碼頁,而這項差異是值得注意的字串比較時,才應該使用的函式。
請參閱
參考
_mbsnbcoll、 _mbsnbcoll_l、 _mbsnbicoll、 _mbsnbicoll_l
strncmp、 wcsncmp、 _mbsncmp、 _mbsncmp_l
_strnicmp、 _wcsnicmp、 _mbsnicmp、 _strnicmp_l、 _wcsnicmp_l、 _mbsnicmp_l