Problème fonction écrite en C

Fermé
mumberea - 9 nov. 2011 à 17:36
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 - 15 nov. 2011 à 01:08
Bonjour,

j'avoue que je n'ai pas encore bien interiorisé la théorie sur les chaines de caratères, alors il y a cette fonction qui plante juste après l'instruction printf(" Homme ou femme?... ");
la compilaion se déroule correctement (cad pas d'erreur de synthaxe), mais je n'arrive pas à trouver le problème.

le voici:

void identification(coord joueur)
{
printf("\n\tINDENTIFICATONU DU JOUEUR\n\t--------------------------\n\n");
printf("\tVeuillez entrer vos coordonnees:\n");
printf("\nPrenom:");scanf("%s",&joueur.prenom);
printf("\nNom:");scanf("%s",&joueur.nom);
printf("\nPostnom:");scanf("%s",&joueur.nom);
printf("\nHomme ou femme? Tapez H ou F:\t");scanf("%s",&joueur.genre[10]);

//Determinantion de Monsieur ou Madame
if(joueur.genre[10]=="H"||joueur.genre[10]=="h")
{
joueur.genre[10]="Monsieur";
}
else if(joueur.genre[10]=="F"||joueur.genre[10]=="f")
{
joueur.genre[10]="Madame";
}
else
{
do
{
printf("\n\tVeuillez tapez M ou F:\t");
scanf("%s",&joueur.genre);
}
while((joueur.genre[10]!="M"||joueur.genre[10]!="m")||(joueur.genre[10]!="F"||joueur.genre[10]!="f"));
};

printf("\n\t%s %s %s %s, si vous etes pret alors\n\n",joueur.genre,joueur.prenom,joueur.nom,joueur.postnom);system("PAUSE");printf("\n\n");
}


1 réponse

keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 231
15 nov. 2011 à 01:01
Pour lire un caractère, il te faut juste déclarer un char

char joueur.genre;
printf("Votre genre? H pour homme et F pour femme");
scan("%c",&joueur.genre);
1
keurdange Messages postés 720 Date d'inscription lundi 8 novembre 2010 Statut Membre Dernière intervention 13 juillet 2016 231
Modifié par keurdange le 15/11/2011 à 01:10
mais pour le chaine de caractère, essaie de déclarer un tableau puis tu le lie avec comme ceci:

char joueur.genre[20];
printf("Votre genre?");
scanf("%s", joueur.genre);

Regarde bien la façon dont le scanf est formé ici

j'ai pris le 20 par hasard, pour ton cas 10 est largement suffisant.
Espérant t'aider.
Merci
0