Remplir un tableau avec des chaines de char

Fermé
tivanbelle - 3 janv. 2010 à 19:28
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 - 3 janv. 2010 à 21:26
Bonjour,

J'aimerais remplir un tableau carte[10][10] de la façon suivante :
carte[0][1] = "zone00.txt"
carte[0][2] = "zone01.txt"
carte[0][3] = "zone02.txt"
carte[0][4] = "zone03.txt"
carte[0][5] = "zone04.txt"
...
carte[9][7] = "zone97.txt"
carte[9][8] = "zone98.txt"
carte[9][9] = "zone99.txt"

j'ai donc crée deux boucles for :

for(i=0;i<10;i++)
{
for(j=0;j<10;j++)
{
[...]
}
}

mais je ne vois pas quels instructions mettre dans cette double boucle.
Pouvez vous m'aider

Merci
A voir également:

5 réponses

perforax Messages postés 269 Date d'inscription dimanche 3 janvier 2010 Statut Membre Dernière intervention 17 mai 2010 8
3 janv. 2010 à 19:30
return 0 nan?
0
apprenti_nformaticien Messages postés 45 Date d'inscription vendredi 1 janvier 2010 Statut Membre Dernière intervention 6 février 2010 5
3 janv. 2010 à 19:31
carte[i][j]=("zone%%.txt",i,j); si c'est dans C
sinon dit moi dans le quel tu le veux :)
0
Oui pardon, c'est bien en C que je le veut mais ce que tu m'a donné ne fonctionne pas.
Quand j'affiche mon tableau ça me donne des (null) dans mes cases
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
3 janv. 2010 à 19:57
Salut,
Ce que tu fais n'est pas correct en C. L'affectation d'un tableau de char n'est correcte qu'à l'initialisation, sinon il faut utiliser des fonctions spécifiques. De plus, tu dois utiliser un tableau à trois dimensions (la troisième étant utilisé pour le tableau de char).

Par exemple essais :
/*50 ou autres. Cela doit être suffisamment grand pour contenir "zone...txt" + 1 caractère (\0)*/
char carte[10][10][12];

int i,j;
for(i=0i<10;i++) {
   for(j=0;j<10;j++) {
       sprintf(carte[i][j],"zone%d%d.txt",i,j);
   }
}

Attention tout de même à la fonction sprintf qui mal utilisée peut provoquer des segfaults. Dans ce cas, vaudra mieux utiliser une fonction sécurisée comme snprintf (C99) ou autres.

Cdlt,
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
apprenti_nformaticien Messages postés 45 Date d'inscription vendredi 1 janvier 2010 Statut Membre Dernière intervention 6 février 2010 5
3 janv. 2010 à 20:02
j'ai oublié de metre le I devant %

ta essayer
Carte[i][j]=("zone%i%i.txt",i,j) ;
ça devrais marcher

comment tu as déclarer le tableau ?
0
fiddy Messages postés 11069 Date d'inscription samedi 5 mai 2007 Statut Contributeur Dernière intervention 23 avril 2022 1 844
3 janv. 2010 à 21:26
Il te manque la fonction, et en plus carte[i][j] est un tableau (il manque d'ailleurs une dimension) et non un un tableau de pointeurs. Il faut donc mettre carte[i][j] en argument de fonctions.
0