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] = efeld[1][0] = f
feld[1][1] = g
feld[1][2] = h
feld[1][3] = i
feld[1][4] = jwie kann ich das umwandeln in:
char *string[2] = { "" };
string[0] = abcde
string[1] = fghijVielen 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'