CompareStringA 関数 (winnls.h)
識別子で指定された ロケール について、2 つの文字列を比較します。
構文
int CompareStringA(
[in] LCID Locale,
[in] DWORD dwCmpFlags,
[in] PCNZCH lpString1,
[in] int cchCount1,
[in] PCNZCH lpString2,
[in] int cchCount2
);
パラメーター
[in] Locale
比較に使用されるロケールのロケール識別子。 MAKELCID マクロを使用してロケール識別子を作成するか、次のいずれかの定義済み値を使用できます。
- LOCALE_CUSTOM_DEFAULT
- LOCALE_CUSTOM_UI_DEFAULT
- LOCALE_CUSTOM_UNSPECIFIED
- LOCALE_INVARIANT
- LOCALE_SYSTEM_DEFAULT
- LOCALE_USER_DEFAULT
[in] dwCmpFlags
関数が 2 つの文字列を比較する方法を示すフラグ。 詳細な定義については、CompareStringEx の dwCmpFlags パラメーターを参照してください。
[in] lpString1
比較する最初の文字列へのポインター。
[in] cchCount1
lpString1 で示される文字列の長さ (終端の null 文字を除く)。 この値は、ANSI バージョンの関数のバイトと Unicode バージョンのワイド文字を表します。 文字列が null で終わる場合、アプリケーションは負の値を指定できます。 この場合、関数は長さを自動的に決定します。
[in] lpString2
比較する 2 番目の文字列へのポインター。
[in] cchCount2
lpString2 で示される文字列の長さ (終端の null 文字を除く)。 この値は、ANSI バージョンの関数のバイトと Unicode バージョンのワイド文字を表します。 文字列が null で終わる場合、アプリケーションは負の値を指定できます。 この場合、関数は長さを自動的に決定します。
戻り値
CompareStringEx に記述されている値を返します。
解説
「CompareStringEx の備考」を参照してください。
アプリケーションが ANSI バージョンの CompareString を呼び出している場合、関数は指定されたロケールの既定のコード ページを介してパラメーターを変換します。 したがって、アプリケーションで Utf-8 テキストを処理するために CompareString を使用することはできません。
通常、大文字と小文字を区別しない比較では、ロケールがトルコ語またはアゼルバイジャン語の場合でも、 CompareString は小文字の "i" を大文字の "I" にマップします。 NORM_LINGUISTIC_CASING フラグは、トルコ語またはアゼルバイジャン語の場合、この動作をオーバーライドします。 このフラグがトルコ語またはアゼルバイジャン語と組み合わせて指定されている場合、LATIN SMALL LETTER DOTLESS I (U+0131) は小文字の英大文字 I (U+0049) で、ラテン小文字 I (U+0069) は小文字の英大文字 I (U+0130) です。
Windows 8 以降: 関数の ANSI バージョンは Winnls.h で宣言され、Unicode バージョンは Stringapiset.h で宣言されます。 Windows 8 より前では、両方のバージョンが Winnls.h で宣言されていました。
注意
winnls.h ヘッダーは、Unicode プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして CompareString を定義します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。
要件
サポートされている最小のクライアント | Windows 2000 Professional [デスクトップ アプリのみ] |
サポートされている最小のサーバー | Windows 2000 Server [デスクトップ アプリのみ] |
対象プラットフォーム | Windows |
ヘッダー | winnls.h (Windows.h を含む) |
Library | Kernel32.lib |
[DLL] | Kernel32.dll |