If else marche pas...?

cs_mayti Messages postés 36 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 11 juin 2005 - 7 févr. 2005 à 03:56
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 - 11 févr. 2005 à 14:34
bonjour, j'ai ce code :



char * valeur = "USERHOST mayti";



if (buf == valeur)

{

MessageBox(0,"Oui !","Test",0);

}

else

{

MessageBox(0,"Non !","Test",0);

}



Mais je recois toujours "Non !" même quand buf vaut "USERHOST mayti"...



Pourquoi ? Merci.

3 réponses

cs_DARKSIDIOUS Messages postés 15814 Date d'inscription jeudi 8 août 2002 Statut Membre Dernière intervention 4 mars 2013 130
7 févr. 2005 à 06:41
Utilise strcmp et non l'opérateur == car cet opérateur doit comparer les adresses des chaînes et non leur contenu!

DarK Sidious

Administrateur et reponsable VB/API du site www.ProgOtoP.com
0
cs_mayti Messages postés 36 Date d'inscription samedi 2 octobre 2004 Statut Membre Dernière intervention 11 juin 2005
7 févr. 2005 à 12:00
ce code fonctionne pas non plus :



if (strcmp(buf,"Test")==0)



{MessageBox(0,"Oui !","",0);}

else

{MessageBox(0,"Non !","",0);}



buf est une chaine que la fonction recv de winsock attribue.
0
HCJarod Messages postés 221 Date d'inscription mardi 12 août 2003 Statut Membre Dernière intervention 11 décembre 2008 1
11 févr. 2005 à 14:34
strcmp compare des chaines se terminant par le caractère nul '\0'.

est tu sur que c'est ton cas??


Chaque problème a sa solution. S'il n'y a pas de solution c'est qu'il n'y a pas de problème.
a+
0
Rejoignez-nous