Partager via


lstrcmpiA, fonction (winbase.h)

Compare deux chaînes de caractères. La comparaison n’est pas sensible à la casse.

Pour effectuer une comparaison sensible à 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 null à comparer.

[in] lpString2

Type : LPCTSTR

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

Valeur de retour

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 égale à 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 entre eux, et ainsi de suite jusqu’à ce qu’il trouve une inégalité ou atteigne les extrémités des chaînes.

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

La fonction appelle CompareStringEx, en utilisant les paramètres régionaux du thread actuel 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 appropriée. Par exemple, au Japon, appelez avec les valeurs NORM_IGNORECASE, NORM_IGNOREKANATYPEet 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 être assuré d’avoir un tri « insensible » culturellement correct, quel que soit le paramètre régional. Notez que la spécification de ces valeurs ralentit les performances. Utilisez-les uniquement si nécessaire.

Avec une version de jeu de caractères double octet (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înes. Un tri de mots traite les traits d’union et les apostrophes différemment des autres symboles qui ne sont pas alphanumériques, afin de garantir que les mots tels que « coop » et «co-op» restent ensemble dans une liste triée. Pour une discussion détaillée sur les tris de mots et les tris de chaînes, consultez Gestion du tri dans vos applications.

Remarques sur la sécurité

Consultez considérations relatives à la sécurité : Fonctionnalités internationales pour connaître les considérations de sécurité relatives au choix des fonctions de comparaison.

Note

L’en-tête winbase.h définit lstrcmpi comme 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. Le mélange 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.

Exigences

Exigence Valeur
client minimum pris en charge Windows 2000 Professionnel [applications de bureau uniquement]
serveur minimum pris en charge Windows 2000 Server [applications de bureau uniquement]
plateforme cible Windows
d’en-tête winbase.h (inclure Windows.h)
bibliothèque Kernel32.lib
DLL Kernel32.dll

Voir aussi

compareString

compareStringEx

CompareStringOrdinal

conceptuelle

autres ressources

de référence

chaînes

lstrcat

lstrcmp

lstrcpy

lstrlen