Freigeben über


CompareStringA-Funktion (winnls.h)

Vergleicht zwei Zeichenfolgen für ein Gebietsschema durch bezeichner angegeben.

Vorsicht Die Verwendung von CompareString- kann die Sicherheit Ihrer Anwendung beeinträchtigen. Zeichenfolgen, die nicht richtig verglichen werden, können ungültige Eingaben erzeugen. Beispielsweise kann die Funktion Sicherheitsprobleme auslösen, wenn sie für einen nicht sprachlichen Vergleich verwendet werden, da zwei Zeichenfolgen, die in ihrer binären Darstellung unterscheiden, linguistisch gleichwertig sein können. Die Anwendung sollte Zeichenfolgen vor der Verwendung auf Gültigkeit testen und Fehlerhandler bereitstellen. Weitere Informationen finden Sie unter Sicherheitsüberlegungen: Internationale Features.
 
Hinweis Für die Kompatibilität mit Unicode sollten Ihre Anwendungen CompareStringEx- oder die Unicode-Version von CompareStringbevorzugen. Ein weiterer Grund dafür, CompareStringEx zu bevorzugen, besteht darin, dass Microsoft aus Interoperabilitätsgründen zur Verwendung von Gebietsschemanamen anstelle von Gebietsschema-IDs migriert wird. Jede Anwendung, die nur unter Windows Vista und höher ausgeführt wird, sollte CompareStringExverwenden.
 

Syntax

int CompareStringA(
  [in] LCID   Locale,
  [in] DWORD  dwCmpFlags,
  [in] PCNZCH lpString1,
  [in] int    cchCount1,
  [in] PCNZCH lpString2,
  [in] int    cchCount2
);

Parameter

[in] Locale

Gebietsschemabezeichner des gebietsschemas, das für den Vergleich verwendet wird. Sie können das MAKELCID Makro verwenden, um einen Gebietsschemabezeichner zu erstellen oder einen der folgenden vordefinierten Werte zu verwenden.

[in] dwCmpFlags

Flags, die angeben, wie die Funktion die beiden Zeichenfolgen vergleicht. Ausführliche Definitionen finden Sie im dwCmpFlags Parameter von CompareStringEx.

[in] lpString1

Zeigen Sie auf die erste zu vergleichende Zeichenfolge.

[in] cchCount1

Länge der Zeichenfolge, die durch lpString1angegeben wird, mit Ausnahme des endierenden Nullzeichens. Dieser Wert stellt Bytes für die ANSI-Version der Funktion und breite Zeichen für die Unicode-Version dar. Die Anwendung kann einen negativen Wert angeben, wenn die Zeichenfolge null-beendet ist. In diesem Fall bestimmt die Funktion die Länge automatisch.

[in] lpString2

Zeigen Sie auf die zweite zu vergleichende Zeichenfolge.

[in] cchCount2

Länge der durch lpString2angegebenen Zeichenfolge, mit Ausnahme des endierenden Nullzeichens. Dieser Wert stellt Bytes für die ANSI-Version der Funktion und breite Zeichen für die Unicode-Version dar. Die Anwendung kann einen negativen Wert angeben, wenn die Zeichenfolge null-beendet ist. In diesem Fall bestimmt die Funktion die Länge automatisch.

Rückgabewert

Gibt die für CompareStringExbeschriebenen Werte zurück.

Bemerkungen

Siehe Hinweise für CompareStringEx.

Wenn Ihre Anwendung die ANSI-Version von CompareStringaufruft, konvertiert die Funktion Parameter über die Standardcodeseite des angegebenen Gebietsschemas. Daher kann eine Anwendung niemals CompareString- verwenden, um UTF-8-Text zu verarbeiten.

Normalerweise ordnet CompareString für Vergleiche zwischen Groß- und Kleinschreibung das Kleinbuchstabe "i" dem Großbuchstaben "I" zu, auch wenn das Gebietsschema türkisch oder aserbaidschanisch ist. Die NORM_LINGUISTIC_CASING Kennzeichnung setzt dieses Verhalten für Türkisch oder Aserbaidschan außer Kraft. Wenn diese Kennzeichnung in Verbindung mit Türkisch oder Aserbaidschan angegeben wird, ist LATIN SMALL LETTER DOTLESS I (U+0131) die Kleinbuchstabenform VON LATIN CAPITAL LETTER I (U+0049) und LATIN SMALL LETTER I (U+0069) die Kleinbuchstabenform DES LATEINISCHEN BUCHSTABENS I MIT PUNKT ÜBER (U+0130).

Ab Windows 8: Die ANSI-Version der Funktion wird in Winnls.h deklariert, und die Unicode-Version wird in Stringapiset.h deklariert. Vor Windows 8 wurden beide Versionen in Winnls.h deklariert.

Anmerkung

Der winnls.h-Header definiert CompareString als Alias, der automatisch die ANSI- oder Unicode-Version dieser Funktion basierend auf der Definition der UNICODE-Präprozessorkonstante auswählt. Das Mischen der Verwendung des codierungsneutralen Alias mit Code, der nicht codierungsneutral ist, kann zu Nichtübereinstimmungen führen, die zu Kompilierungs- oder Laufzeitfehlern führen. Weitere Informationen finden Sie unter Konventionen für Funktionsprototypen.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Windows 2000 Professional [nur Desktop-Apps]
mindestens unterstützte Server- Windows 2000 Server [nur Desktop-Apps]
Zielplattform- Fenster
Header- winnls.h (enthalten Windows.h)
Library Kernel32.lib
DLL- Kernel32.dll

Siehe auch

CompareStringEx-

Behandlung der Sortierung in Ihren Anwendungen

Funktionen

Sicherheitsüberlegungen: Internationale Features

Verwenden der Unicode-Normalisierung zur Darstellung von Zeichenfolgen