strcoll功能

每个 strcoll 和 wcscoll 功能可以根据当前正在使用 LC_COLLATE 类别以区域设置代码页的比较两个字符串。 每个 _mbscoll 功能可以根据当前正在使用多字节代码页的比较两个字符串。 用于字符串比较请使用 coll 功能,当在字符集命令时和字典字符序列当前代码页和差异之间的区别是该比较的利益。 使用对应的 cmp 功能仅测试字符串相等性。

strcoll 功能

SBCS

Unicode

MBCS

说明

strcoll

wcscoll

_mbscoll

排列两个字符串

_stricoll

_wcsicoll

_mbsicoll

排列两个字符串 (不区分大小写)

_strncoll

_wcsncoll

_mbsncoll

排列两个字符串第一 count 字符

_strnicoll

_wcsnicoll

_mbsnicoll

排列两个字符串第一 count 字符 (不区分大小写)

备注

这些函数 (strcoll、 stricoll、 _strncoll和 _strnicoll) 的单字节字符 (SBCS)版本根据 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 功能,仅当在字符集命令时和字典字符序列当前代码页和差异之间的区别是字符串比较的利益。

请参见

参考

区域设置

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