|
|
|
|
short RechercheParNom (struct Pays*p) //par pays
{
int j,i;
short trouve=0;
char NomPays[30];
printf("Recherche d'un Pays\n");
printf("________________________\n\n");
printf("Entrez le nom a rechecher : ");
j=LireVChaine(NomPays,30);
Majuscule(&NomPays[0]);
for(j=0;j<30 && trouve==0;j++,i++)
{
if(strcmp(p->NomPays,NomPays)==0)
{
trouve=1;
}
}
if(j==30 && trouve==0)
j=0;
if (trouve==1)
{
AffichePays(p);
}
else
{
printf("\nLe Pays recherche n'a pu etre trouve");
}
return (j-1);
}Configuration: Windows XP Firefox 2.0.0.13
dans :
for(j=0;j<30 && trouve==0;j++,i++) { if(strcmp(p->NomPays,NomPays)==0) { trouve=1; } } a quoi servent tes indices ? ou plutot a quoi sert cette boucle ? un strcmp ne suffit-il pas ? entre p->NomPays et NomPays ? strcmp compare deux chaine donc je ne vois l'utilité de ta boucle.
|
peux-tu me donner la structure Pays ainsi que les fonctions affichepays et lireVchaine stp, merci
|
pourquoi ne pas utilisé un bon vieux scanf("%s",p) ? et tes chaine ne sont pas de meme taille une est à 20 et une autre est à 30, pb de cohérence
|
comment tu rentres les pays dans la structure avant la recherche ? |
voila ce que je ferai (le pb vient certainement que tu joue avec des tableau non alloué dynamiquement):
/* dans ta structure : char *NomPays; et pas char NomPays[30]; */ char s[256]; scanf("%s",s);//tu saisies le nom du pays c->NomPays = (char *)malloc(sizeof(char)*(strlen(s)+1)); //allocation dynamique d'un tableau de char strcpy(c->NomPays,s); //copie de s dans c->NomPays //et voila cela devrait marcher enfin j'en suis quasi sur // ensuite fais un strcmp et ok qd le resultat est à 0. bon courage pour la suite |