Remplir un tableau avec des chaines de char

tivanbelle -  
fiddy Messages postés 11653 Date d'inscription   Statut Contributeur Dernière intervention   -
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 301 Statut Membre 8
 
return 0 nan?
0
apprenti_nformaticien Messages postés 52 Statut Membre 5
 
carte[i][j]=("zone%%.txt",i,j); si c'est dans C
sinon dit moi dans le quel tu le veux :)
0
tivanbelle
 
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 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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 52 Statut Membre 5
 
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 11653 Date d'inscription   Statut Contributeur Dernière intervention   1 847
 
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