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)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

CompareString

CompareStringEx

CompareStringOrdinal

概念

其他資源

參考

字串

lstrcat

lstrcmp

lstrcpy

lstrlen