strcoll、 wcscoll、 _mbscoll、 _strcoll_l、 _wcscoll_l、 _mbscoll_l
使用目前的地區設定或指定的 LC_CTYPE 轉換狀態分類,比較字串。
重要
_mbscoll 和 _mbscoll_l 不能用於 Windows 執行階段執行的應用程式。如需詳細資訊,請參閱 CRT 函式不支援使用 /ZW。
int strcoll(
const char *string1,
const char *string2
);
int wcscoll(
const wchar_t *string1,
const wchar_t *string2
);
int _mbscoll(
const unsigned char *string1,
const unsigned char *string2
);
int _strcoll_l(
const char *string1,
const char *string2,
_locale_t locale
);
int wcscoll_l(
const wchar_t *string1,
const wchar_t *string2,
_locale_t locale
);
int _mbscoll_l(
const unsigned char *string1,
const unsigned char *string2,
_locale_t locale
);
參數
string1, string2
要比較的 NULL 結尾字串。locale
使用的地區設定。
傳回值
這些函式都會傳回表示 string1 的關聯性值設定為 string2*,* 如下所示。
傳回值 |
string1 string2 關聯性 |
---|---|
< 0 |
string1 小於 string2 |
0 |
string1 與 string2 相同 |
> 0 |
string1 大於 string2 |
這些函式都會傳回錯誤的 _NLSCMPERROR 。 若要使用 _NLSCMPERROR,將 STRING.H 或 MBSTRING.H。 如果 string1 或 string2 是空的或包含在定序序列的網域之外,寬字元程式碼wcscoll 可能會失敗。 發生錯誤時, wcscoll 會將 errno 設定為 EINVAL。 若要檢查名為的錯誤到 wcscoll,請將 errno 設定為 0 在呼叫 wcscoll之後檢查 errno 。
備註
這些函式都會根據目前使用的字碼頁執行 string1 和 string2 區分大小寫的比較。 應該使用這些函式,才會在字元集順序時和字典會在目前字碼頁和這個差異之間的一個差異是字串比較的利益。
這些函式會驗證它們的參數。 如果 string1 或 string2 為 null 指標,則為,如果 count 大於 INT_MAX,無效的參數叫用處理常式,如 參數驗證 中所述。 如果執行允許繼續執行,這些函式傳回 _NLSCMPERROR 並將 errno 設為 EINVAL。
因為每個地區設定有排序的字元,不同的規則比較兩個字串的比較是與地區設定相關的作業。 這些函式版本沒有 _l 尾碼此地區設定相關行為使用目前執行緒的地區設定;與 _l 結尾的版本與對應的函式相同沒有後置字元,但使用做為參數傳遞的地區設定而不是目前的地區設定。 如需詳細資訊,請參閱地區設定。
泛用文字常式對應
TCHAR.H 常式 |
未定義 _UNICODE & _MBCS |
已定義 _MBCS |
已定義 _UNICODE |
---|---|---|---|
_tcscoll |
strcoll |
_mbscoll |
wcscoll |
需求
程序 |
必要的標頭檔 |
---|---|
strcoll |
<string.h> |
wcscoll |
<wchar.h>, <string.h> |
_mbscoll, _mbscoll_l |
<mbstring.h> |
_strcoll_l |
<string.h> |
_wcscoll_l |
<wchar.h>, <string.h> |
如需其他相容性資訊,請參閱入門介紹中的 相容性 (Compatibility) 。
.NET Framework 對等用法
請參閱
參考
_mbsnbcoll、 _mbsnbcoll_l、 _mbsnbicoll、 _mbsnbicoll_l
_stricmp、 _wcsicmp、 _mbsicmp、 _stricmp_l、 _wcsicmp_l、 _mbsicmp_l
strncmp、 wcsncmp、 _mbsncmp、 _mbsncmp_l
_strnicmp、 _wcsnicmp、 _mbsnicmp、 _strnicmp_l、 _wcsnicmp_l、 _mbsnicmp_l