strcoll 函式
strcoll 和 wcscoll 函式比較都是根據正在使用中地區設定的字碼頁的 LC_COLLATE 類別設定的兩個字串。 每個 _mbscoll 函式會根據目前使用中 + 多位元組的字碼頁來比較兩個字串。 使用coll函式應該只有在目前字碼頁上,字元集順序和字典字元順序存在差異,且這些差異影響到字串比較時,才會使用。 使用對應的 cmp 函式只會測試字串是否相等。
strcoll 函式
SBCS |
Unicode |
MBCS |
說明 |
---|---|---|---|
定序兩個字串 |
|||
定序兩個字串 (不區分大小寫) |
|||
對照兩個字串第 count 個字元 |
|||
對照兩個字串第 count個字元 (不區分大小寫) |
備註
單一位元組字元 (SBCS) 版本這些函式 (strcoll、 stricoll、 _strncoll和 _strnicoll) 根據目前地區設定的 LC_COLLATE 分類設定比較 string1 和 string2 。 這些函式與對應的 strcmp 函式的不同之處在於 strcoll 函式使用地區設定提供定序序列的字碼頁資訊。 如果字串比較在字元集順序和字典會不同地區設定,應該使用 strcoll 函式來取代對應的 strcmp 函式。 如需LC_COLLATE的詳細資訊,請參閱 setlocale。
對於某些字碼頁和對應的字元集,字元順序字元集的可能與字典會不同。 在「C」地區設定,這不成立:字元順序在 ASCII 字元集中相同字元的字、編輯纂順序。 例如,然而,在某些歐洲字碼頁字元「a」(值 0x61) 以字元「ä」(值 0xE4) 在字元集,不過,字元「ä 之前」字一般地在字元「a」之前。 若要執行字典會比較這個執行個體,請使用 strcoll 而非 strcmp。 或者,您可以在原始字串的 strxfrm ,然後在結果字串的 strcmp 。
strcoll、 stricoll、 _strncoll和 _strnicoll 是根據正在使用中地區設定的字碼頁會自動處理多位元組字元字串,與其寬字元 (Unicode) 對應項目。 這些函式多位元組字元 (MBCS) 版本,不過,視目前使用中 + 多位元組的字碼頁自動分頁以字元為基礎的字串。
因為 coll 函式 (以地自動分頁字串比較的,反之, cmp 函式來測試字串是否相等, coll 函式比對應的 cmp 版本慢。 因此,這些coll函式應該只有在目前字碼頁上,字元集順序和字典字元順序存在差異,且這些差異影響到字串比較時,才會使用。
請參閱
參考
_mbsnbcoll、_mbsnbcoll_l、_mbsnbicoll、_mbsnbicoll_l
strncmp、wcsncmp、_mbsncmp、_mbsncmp_l
_strnicmp、_wcsnicmp、_mbsnicmp、_strnicmp_l、_wcsnicmp_l、_mbsnicmp_l