Remplir un tableau avec des chaines de char

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
Configuration: Windows 7
Firefox 3.5.6

5 réponses

  1. carte[i][j]=("zone%%.txt",i,j); si c'est dans C
    sinon dit moi dans le quel tu le veux :)
    0
    1. 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
      1. Contributeur
        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
        1. 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
          1. Contributeur
            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