C++ comparaison char*

Résolu
bestofzealot -  
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   -
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   Statut Contributeur Dernière intervention   1 846
 
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
bestofzealot
 
ça marche aussi sur les char* strcmp , j'ai pas essayé, je vais voir ça
0
bestofzealot
 
en effet ça marche même si c'est d'une logique inverse (renvoie 0 si c'est vrai)
1
mamiemando Messages postés 33772 Date d'inscription   Statut Modérateur Dernière intervention   7 882
 
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