compareString 函数 (winnls.h)
比较标识符指定的 区域设置 的两个字符串。
语法
int CompareString(
[in] LCID Locale,
[in] DWORD dwCmpFlags,
[in] LPCTSTR lpString1,
[in] int cchCount1,
[in] LPCTSTR lpString2,
[in] int cchCount2
);
参数
[in] Locale
用于比较的区域设置的区域设置标识符。 可以使用 MAKELCID 宏创建区域设置标识符,也可以使用以下预定义值之一。
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
- LOCALE_INVARIANT
- LOCALE_SYSTEM_DEFAULT
- LOCALE_USER_DEFAULT
[in] dwCmpFlags
指示函数如何比较两个字符串的标志。 有关详细定义,请参阅 CompareStringEx 的 dwCmpFlags 参数。
[in] lpString1
指向要比较的第一个字符串的指针。
[in] cchCount1
lpString1 指示的字符串的长度,不包括终止 null 字符。 此值表示函数的 ANSI 版本的字节和 Unicode 版本的宽字符。 如果字符串以 null 结尾,则应用程序可以提供负值。 在这种情况下,函数会自动确定长度。
[in] lpString2
指向要比较的第二个字符串的指针。
[in] cchCount2
lpString2 指示的字符串的长度,不包括终止 null 字符。 此值表示函数的 ANSI 版本的字节和 Unicode 版本的宽字符。 如果字符串以 null 结尾,则应用程序可以提供负值。 在这种情况下,函数会自动确定长度。
返回值
返回为 CompareStringEx 描述的值。
注解
请参阅 CompareStringEx 的备注。
如果应用程序调用 AnSI 版本的 CompareString,则函数通过提供的区域设置的默认代码页转换参数。 因此,应用程序永远不能使用 CompareString 来处理 UTF-8 文本。
通常,对于不区分大小写的比较, CompareString 会将小写“i”映射到大写“I”,即使区域设置是土耳其语或阿塞拜疆语。 NORM_LINGUISTIC_CASING标志覆盖了土耳其或阿塞拜疆人的这种行为。 如果此标志与土耳其语或阿塞拜疆语一起指定,则拉丁文小写字母 DOTLESS I (U+0131) 是拉丁文大写字母 I (U+0049) 和拉丁文小写字母 I (U+0069) 是拉丁文大写字母 I 的小写形式,上面为 DOT (U+0130) 。
从 Windows 8 开始:函数的 ANSI 版本在 Winnls.h 中声明,Unicode 版本在 Stringapiset.h 中声明。 在Windows 8之前,这两个版本都在 Winnls.h 中声明。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows 2000 Professional [仅限桌面应用] |
最低受支持的服务器 | Windows 2000 Server [仅限桌面应用] |
目标平台 | Windows |
标头 | winnls.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |