Problème C tableau de chaînes de caractères
florentv
-
loupius Messages postés 789 Statut Membre -
loupius Messages postés 789 Statut Membre -
Bonjour,
Je dois faire un programme en C et je rencontre un problème avec les tableaux de chaînes de caractères.
Je vous ai collé une partie de mon programme ci-dessous :
_______________________________________________
int nb_equipes, nb_etapes;
char nom_equipe[20];
fscanf(flec, "%d%d", &nb_etapes, &nb_equipes);
char * tab_equipes[nb_equipes];
for (i=0;i<nb_equipes;i++){
fscanf(flet,"%s",nom_equipe);
tab_equipes[i] = nom_equipe;
printf(" equipe %d : %s \n",i,tab_equipes[i]);
}
_______________________________________________
Avec la fonction fscanf je veux copier un nom d'équipe dans la variable nom_equipe (ceci marche très bien).
Ensuite, je veux copier la valeur de cette variable dans le tableau tab_equipes. Le problème est que c'est l'adresse de la variable nom_equipe qui est copiée.
Après être repassé dans la boucle for plusieurs fois, les valeurs contenues dans tab_equipes sont toutes identiques (et égales à la dernière valeur prise par nom_equipe) alors qu'elles devraient être toutes différentes... Ceci est dû au fait que c'est l' adresse de nom_equipe qui a été copiée dans le tableau et pas sa valeur...
Comment je peux contourner ce problème ?
Merci de votre aide.
Je dois faire un programme en C et je rencontre un problème avec les tableaux de chaînes de caractères.
Je vous ai collé une partie de mon programme ci-dessous :
_______________________________________________
int nb_equipes, nb_etapes;
char nom_equipe[20];
fscanf(flec, "%d%d", &nb_etapes, &nb_equipes);
char * tab_equipes[nb_equipes];
for (i=0;i<nb_equipes;i++){
fscanf(flet,"%s",nom_equipe);
tab_equipes[i] = nom_equipe;
printf(" equipe %d : %s \n",i,tab_equipes[i]);
}
_______________________________________________
Avec la fonction fscanf je veux copier un nom d'équipe dans la variable nom_equipe (ceci marche très bien).
Ensuite, je veux copier la valeur de cette variable dans le tableau tab_equipes. Le problème est que c'est l'adresse de la variable nom_equipe qui est copiée.
Après être repassé dans la boucle for plusieurs fois, les valeurs contenues dans tab_equipes sont toutes identiques (et égales à la dernière valeur prise par nom_equipe) alors qu'elles devraient être toutes différentes... Ceci est dû au fait que c'est l' adresse de nom_equipe qui a été copiée dans le tableau et pas sa valeur...
Comment je peux contourner ce problème ?
Merci de votre aide.
A voir également:
- Problème C tableau de chaînes de caractères
- Tableau word - Guide
- Recherche automatique des chaînes ne fonctionne pas - Guide
- Tableau ascii - Guide
- Trier un tableau excel - Guide
- Caractères spéciaux - Guide