Frage zu Stringtabellen.



  • Hallo,

    ich habe folgende Frage,

    ich habe folgendes Feld:

    char feld[5][5];

    feld[0][0] = a
    feld[0][1] = b
    feld[0][2] = c
    feld[0][3] = d
    feld[0][4] = e

    feld[1][0] = f
    feld[1][1] = g
    feld[1][2] = h
    feld[1][3] = i
    feld[1][4] = j

    wie kann ich das umwandeln in:

    char *string[2] = { "" };

    string[0] = abcde
    string[1] = fghij

    Vielen Dank im voraus!

    Grüße,
    tutorialfresser



  • Erstmal solltest du deine Zeichen-Literale in Hochkommas einschließen. 'a' wird vom Compiler eher erkannt als a.

    Zweitens mußt du Speicher per malloc() anfordern und kannst ihn dann mit strcpy() und Kollegen auffüllen:

    for(i=0;i<2;++i)
    {
      string[i]=malloc(6);//Achtung: Du brauchst Platz für fünf char's UND Nullterminator
      strcpy(string[i],feld[i]);
    }
    


  • Vielen Dank, werde ich dann gleich ausprobieren.

    Grüße,
    tutorialfresser



  • CStoll schrieb:

    Erstmal solltest du deine Zeichen-Literale in Hochkommas einschließen. 'a' wird vom Compiler eher erkannt als a.

    Zweitens mußt du Speicher per malloc() anfordern und kannst ihn dann mit strcpy() und Kollegen auffüllen:

    for(i=0;i<2;++i)
    {
      string[i]=malloc(6);//Achtung: Du brauchst Platz für fünf char's UND Nullterminator
      strcpy(string[i],feld[i]);
    }
    

    But feld is NOT null-terminated, so strcpy wouldn't work.

    for(a=0;a<2;++a)
    {
      int b;
      string[a]=malloc(6);//Achtung: Du brauchst Platz für fünf char's UND Nullterminator
      for(b=0;b<5;++b)
        string[a][b] = feld[a][b];
      string[a][5] = 0;
    }
    


  • RoboTact schrieb:

    But feld is NOT null-terminated, so strcpy wouldn't work.[cpp]for(a=0;a<2;++a)

    ich glaub' du verwechselst das mit 'strcat'


Anmelden zum Antworten