Partager via


lstrcmpiA, fonction (winbase.h)

Compare deux chaînes de caractères. La comparaison ne respecte pas la casse.

Pour effectuer une comparaison qui respecte la casse, utilisez la fonction lstrcmp .

Syntaxe

int lstrcmpiA(
  [in] LPCSTR lpString1,
  [in] LPCSTR lpString2
);

Paramètres

[in] lpString1

Type : LPCTSTR

Première chaîne terminée par un caractère Null à comparer.

[in] lpString2

Type : LPCTSTR

Deuxième chaîne terminée par null à comparer.

Valeur retournée

Type : int

Si la chaîne pointée par lpString1 est inférieure à la chaîne pointée par lpString2, la valeur de retour est négative. Si la chaîne pointée par lpString1 est supérieure à la chaîne pointée par lpString2, la valeur de retour est positive. Si les chaînes sont égales, la valeur de retour est zéro.

Remarques

La fonction lstrcmpi compare deux chaînes en vérifiant les premiers caractères les uns par rapport aux autres, les deuxièmes caractères les uns par rapport aux autres, et ainsi de suite jusqu’à ce qu’elle trouve une inégalité ou atteigne les extrémités des chaînes.

Notez que les paramètres lpString1 et lpString2 doivent être terminés par null, sinon la comparaison de chaînes peut être incorrecte.

La fonction appelle CompareStringEx, à l’aide des paramètres régionaux de thread actuels, et soustrait 2 du résultat, pour conserver les conventions d’exécution C pour comparer les chaînes.

Pour certains paramètres régionaux, la fonction lstrcmpi peut être insuffisante. Si cela se produit, utilisez CompareStringEx pour garantir une comparaison correcte. Par exemple, au Japon, appelez avec les valeurs NORM_IGNORECASE, NORM_IGNOREKANATYPE et NORM_IGNOREWIDTH pour obtenir la comparaison de chaînes non exacte la plus appropriée. Les valeurs NORM_IGNOREKANATYPE et NORM_IGNOREWIDTH sont ignorées dans les paramètres régionaux non asiatiques. Vous pouvez donc définir ces valeurs pour tous les paramètres régionaux et avoir la garantie d’avoir un tri « insensible » culturellement correct, quels que soient les paramètres régionaux. Notez que la spécification de ces valeurs ralentit les performances. Par conséquent, utilisez-les uniquement lorsque cela est nécessaire.

Avec une version de jeu de caractères codés sur deux octets (DBCS) du système, cette fonction peut comparer deux chaînes DBCS.

La fonction lstrcmpi utilise un tri de mots, plutôt qu’un tri de chaîne. Un tri de mots traite les traits d’union et les apostrophes différemment d’autres symboles qui ne sont pas alphanumériques, afin de s’assurer que des mots tels que « coop » et « co-op » restent ensemble dans une liste triée. Pour une présentation détaillée des tris de mots et des tris de chaînes, consultez Gestion du tri dans vos applications.

Remarques sur la sécurité

Pour plus d’informations sur la sécurité concernant le choix des fonctions de comparaison , consultez Considérations relatives à la sécurité : fonctionnalités internationales .

Notes

L’en-tête winbase.h définit lstrcmpi en tant qu’alias qui sélectionne automatiquement la version ANSI ou Unicode de cette fonction en fonction de la définition de la constante de préprocesseur UNICODE. La combinaison de l’utilisation de l’alias neutre en encodage avec du code qui n’est pas neutre en encodage peut entraîner des incompatibilités qui entraînent des erreurs de compilation ou d’exécution. Pour plus d’informations, consultez Conventions pour les prototypes de fonction.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
Serveur minimal pris en charge Windows 2000 Server [applications de bureau uniquement]
Plateforme cible Windows
En-tête winbase.h (inclure Windows.h)
Bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

CompareString

CompareStringEx

CompareStringOrdinal

Conceptuel

Autres ressources

Référence

Chaînes

lstrcat

lstrcmp

lstrcpy

lstrlen