lstrcmpiA 函数 (winbase.h)

比较两个字符串。 该比较不区分大小写。

若要执行区分大小写的比较,请使用 lstrcmp 函数。

语法

int lstrcmpiA(
  [in] LPCSTR lpString1,
  [in] LPCSTR lpString2
);

参数

[in] lpString1

类型: LPCTSTR

要比较的第一个以 null 结尾的字符串。

[in] lpString2

类型: LPCTSTR

要比较的第二个以 null 结尾的字符串。

返回值

类型: int

如果 lpString1 指向的字符串小于 lpString2 指向的字符串,则返回值为负值。 如果 lpString1 指向的字符串大于 lpString2 指向的字符串,则返回值为正。 如果字符串相等,则返回值为零。

注解

lstrcmpi 函数通过相互检查第一个字符、第二个字符相互检查等方式比较两个字符串,直到发现不相等或到达字符串的末尾。

请注意, lpString1lpString2 参数必须以 null 结尾,否则字符串比较可能不正确。

函数使用当前线程区域设置调用 CompareStringEx,并从结果中减去 2,以保持用于比较字符串的 C 运行时约定。

对于某些区域设置, lstrcmpi 函数可能不足。 如果发生这种情况,请使用 CompareStringEx 确保正确比较。 例如,在日本,使用 NORM_IGNORECASENORM_IGNOREKANATYPENORM_IGNOREWIDTH 值调用 ,以实现最合适的非精确字符串比较。 NORM_IGNOREKANATYPENORM_IGNOREWIDTH值在非亚洲区域设置中将被忽略,因此,你可以为所有区域设置设置这些值,并保证无论区域设置如何,都具有文化上正确的“不敏感”排序。 请注意,指定这些值会降低性能,因此请仅在必要时使用它们。

使用双字节字符集 (DBCS) 版本的系统,此函数可以比较两个 DBCS 字符串。

lstrcmpi 函数使用单词排序,而不是字符串排序。 单词排序处理连字符和撇号的方式与处理非字母数字的其他符号不同,以确保诸如“coop”和“co-op”之类的单词在排序列表中保持一起。 有关单词排序和字符串排序的详细讨论,请参阅 在应用程序中处理排序

安全备注

有关选择比较函数的安全注意事项,请参阅 安全注意事项:国际功能

注意

winbase.h 标头将 lstrcmpi 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 winbase.h (包括 Windows.h)
Library Kernel32.lib
DLL Kernel32.dll

另请参阅

CompareString

CompareStringEx

CompareStringOrdinal

概念性

其他资源

引用

字符串

lstrcat

lstrcmp

lstrcpy

lstrlen