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 [仅限桌面应用]
目标平台 窗户
标头 winbase.h (包括 Windows.h)
Kernel32.lib
DLL Kernel32.dll

另请参阅

CompareString

CompareStringEx

CompareStringOrdinal

概念

其他资源

参考

字符串

lstrcat

lstrcmp

lstrcpy

lstrlen