CompareStringW 函式 (stringapiset.h)

比較標識子所指定 地區設定 的兩個字元字串。

謹慎 使用 CompareString 不正確可能會危害應用程式的安全性。 未正確比較的字串可能會產生無效的輸入。 例如,函式可以在用於非語言比較時引發安全性問題,因為二進位表示法中相異的兩個字串可以語言上相等。 應用程式應該先測試字串是否有效,再使用這些字串,而且應該提供錯誤處理程式。 如需詳細資訊,請參閱 安全性考慮:國際功能
 
注意 為了與 Unicode 相容,您的應用程式應該偏好 CompareStringExUnicode 版本的 CompareString。 另一個偏好 CompareStringEx 的原因,是 Microsoft 基於互操作性理由,移轉至使用地區設定名稱,而不是使用地區設定標識符。 任何只會在 Windows Vista 上執行且更新版本的應用程式都應該使用 CompareStringEx
 

語法

int CompareStringW(
  [in] LCID                              Locale,
  [in] DWORD                             dwCmpFlags,
  [in] _In_NLS_string_(cchCount1)PCNZWCH lpString1,
  [in] int                               cchCount1,
  [in] _In_NLS_string_(cchCount2)PCNZWCH lpString2,
  [in] int                               cchCount2
);

參數

[in] Locale

用於比較的地區設定地區設定標識碼。 您可以使用 MAKELCID 宏來建立地區設定標識碼,或使用下列其中一個預先定義的值。

[in] dwCmpFlags

指出函式如何比較兩個字串的旗標。 如需詳細定義,請參閱 CompareStringExdwCmpFlags 參數。

[in] lpString1

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

[in] cchCount1

lpString1 所指示的字串長度,不包括終止 Null 字元。 這個值代表函式的 ANSI 版本位元組,以及 Unicode 版本的寬字元。 如果字串為 null 終止,應用程式可以提供負值。 在此情況下,函式會自動判斷長度。

[in] lpString2

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

[in] cchCount2

lpString2 所指示的字串長度,不包括終止 Null 字元。 這個值代表函式的 ANSI 版本位元組,以及 Unicode 版本的寬字元。 如果字串為 null 終止,應用程式可以提供負值。 在此情況下,函式會自動判斷長度。

傳回值

傳回 CompareStringEx 所述的值。

備註

請參閱 CompareStringEx 的備註。

如果您的應用程式呼叫 CompareString 的 ANSI 版本,函式會透過提供地區設定的預設代碼頁來轉換參數。 因此,應用程式永遠不會使用 CompareString 來處理 UTF-8 文字。

一般而言,針對不區分大小寫的比較, CompareString 會將小寫 「i」 對應至大寫 「I」,即使地區設定為土耳其文或亞塞塞亞塞亞利。 NORM_LINGUISTIC_CASING旗標會覆寫土耳其文或亞塞亞塞亞尼的此行為。 如果這個旗標與土耳其文或亞塞塞亞塞亞文一起指定,則 LATIN SMALL LETTER DOTLESS I (U+0131) 是拉丁大寫字母 I (U+0049) ,而 LATIN SMALL LETTER I (U+0069) 是拉丁大寫字母 I 與 DOT ABOVE (U+0130) 。

從 Windows 8 開始:函式的 ANSI 版本會在 Winnls.h 中宣告,而 Unicode 版本會在 Stringapiset.h 中宣告。 在 Windows 8 之前,這兩個版本都是在 Winnls.h 中宣告的。

規格需求

需求
最低支援的用戶端 Windows 2000 專業版 [僅限傳統型應用程式]
最低支援的伺服器 Windows 2000 Server [僅限傳統型應用程式]
目標平台 Windows
標頭 stringapiset.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

CompareStringEx

處理應用程式中的排序

國家語言支援

國家語言支援函式

安全性考慮:國際功能

使用 Unicode 正規化來表示字串