CompareStringOrdinal 函式 (stringapiset.h)

比較兩個 Unicode 字串,以測試二進位等價。

語法

int CompareStringOrdinal(
  [in] _In_NLS_string_(cchCount1)LPCWCH lpString1,
  [in] int                              cchCount1,
  [in] _In_NLS_string_(cchCount2)LPCWCH lpString2,
  [in] int                              cchCount2,
  [in] BOOL                             bIgnoreCase
);

參數

[in] lpString1

要比較的第一個字串指標。

[in] cchCount1

lpString1所指示的字串長度。 如果字串為 null 終止,則應用程式會提供 -1。 在此情況下,函式會自動判斷長度。

[in] lpString2

要比較的第二個字串指標。

[in] cchCount2

lpString2所指示的字串長度。 如果字串為 null 終止,則應用程式會提供 -1。 在此情況下,函式會自動判斷長度。

[in] bIgnoreCase

如果函式是使用作業系統大寫資料表資訊來執行不區分大小寫的比較,則為TRUE。 如果函式與傳入字串完全相同,應用程式會將此參數設定為 FALSE 。 請注意,1 是唯一可用來指定這個布林參數的 true 值,而不會產生不正確參數錯誤。 此參數的布林值如預期般運作。

傳回值

如果成功,則傳回下列其中一個值。 若要維護比較字串的 C 執行時間慣例,可以從非零傳回值減去值 2。 然後,0、==0 和 > 0 的意義 < 與 C 執行時間一致。

  • CSTR_LESS_THAN。 lpString1所指示的值小於lpString2所指示的值。
  • CSTR_EQUAL。 lpString1所指示的值等於lpString2所指示的值。
  • CSTR_GREATER_THAN。 lpString1所指示的值大於lpString2所指示的值。
如果函式未成功,則傳回 0。 若要取得延伸的錯誤資訊,應用程式可以呼叫 GetLastError,這可以傳回下列其中一個錯誤碼:
  • ERROR_INVALID_PARAMETER。 任何參數值都無效。

備註

此函式會測試二進位相等,而不是語言相等。 如需函式用於序數排序的詳細資訊,請參閱 在您的應用程式中處理排序

與語言相等相關的應用程式應該使用 CompareStringCompareStringExlstrcmplstrcmpi。 如需語言排序的詳細資訊,請參閱 處理應用程式中的排序

從 Windows 8 開始: CompareStringOrdinal 會在 Stringapiset.h 中宣告。 在 Windows 8 之前,它會在 Winnls.h 中宣告。

規格需求

   
最低支援的用戶端 Windows Vista [傳統型應用程式 |UWP 應用程式]
最低支援的伺服器 Windows Server 2008 [傳統型應用程式 |UWP 應用程式]
目標平台 Windows
標頭 stringapiset.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

CompareString

CompareStringEx

處理應用程式中的排序

國家語言支援

國家語言支援函式

安全性考慮:國際功能

使用 Unicode 正規化來表示字串