C++ comparaison char*

Résolu/Fermé
bestofzealot - 21 févr. 2009 à 11:56
mamiemando Messages postés 33064 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 avril 2024 - 21 févr. 2009 à 13:32
Bonjour,
j'aimerais coparer deux char* (sachant que l'opérateur == ne marche pas);
je sais pas s'il existe une fontion pour ça ?
merci d'avance
A voir également:

3 réponses

fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 834
21 févr. 2009 à 11:58
Salut,
Il y a la fonction strcmp (ou strncmp) ;)
Par exemple :
if(strcmp(ch1,ch2)==0){//chaine egale}

Sinon, en C++ tu as la classe string (au lieu de char*) qui te propose une méthode pour la comparaison ;)
1
ça marche aussi sur les char* strcmp , j'ai pas essayé, je vais voir ça
0
en effet ça marche même si c'est d'une logique inverse (renvoie 0 si c'est vrai)
1
mamiemando Messages postés 33064 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 12 avril 2024 7 744
21 févr. 2009 à 13:32
Non strcmp ne renvoie ni vrai ni faux mais un entier qui permet de classer les deux chaînes suivant l'ordre lexicographique (strcmp ne signifie pas "est-ce que c'est égal", mais peux-tu comparer et me renvoyer un entier pour ordonner mes deux chaînes) :
http://www.linux-kheops.com/doc/man/manfr/man-html-0.9/man3/strcmp.3.html

Si strcmp renvoie 0 c'est que les deux chaînes ne se distinguent pas l'une de l'autre... bref qu'elles sont égales :-)

Et heureusement, car c'est ce qui permet facilement de faire un qsort sur un tableau de char * ;-)

Bonne continuation
1