Programme en C

Fermé
Hanan - 17 févr. 2011 à 16:05
swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 - 17 févr. 2011 à 17:01
Bonjour,


je veux m'aider pr savoir ou est le probleme dans ce programme qui demande à l'utilisateur de saisir le pseudo(TDI) et le mote de passe(7) pour être bienvenu

#include <stdio.h>
void main(){
int m;
char p;

printf("saisir le PSEUDO :");
scanf("%s",&p);

if(p=="TDI"){
printf("saisir le MOTE DE PASSE :");
scanf("%d",&m);
if(m==7)
printf("bienvenu");
else
do{
printf("saisir le MOTE DE PASSE correctement:");
scanf("%d",&m);
}
while(m!=7);
printf("bienvenu");
}


else{
do
{
printf("saisir correctement PSEUDO :");
scanf("%s",&p);
}
while(p!="TDI");
printf("MOTE DE PASSE :");
scanf("%d",&m);
if(m==7)
printf("bienvenu");
else
do{
printf("saisir le MOTE DE PASSE correctement:");
scanf("%d",&m);
}
while(m!=7);
printf("bienvenu");
}}

Merci pr vous

1 réponse

swoog42 Messages postés 1060 Date d'inscription mercredi 30 septembre 2009 Statut Membre Dernière intervention 16 décembre 2018 244
17 févr. 2011 à 17:01
Salut.

Déjà, avant tout, on ne compare pas une chaine en C de cette manière
p=="TDI";

mais comme ca :
strcmp(&p, "TDI");


Attention : à 2 chaines identiques, strcmp() renvoie 0.
Donc pour tester tes chaines, ton test sera :
if( !strcmp(&p, "TDI") )


Bosse déjà la dessus, et tu reprends contact si tu as encore des problèmes.

Pour info sur cette fonction : Fonction strcmp()
0