Zweidimenionales Array zuweisen
-
Hallo Leute,
kurz vorab: bin Anfänger - also bitte nicht meckern
wie ich ein zweidimensionales Array erstelle habe ich bereits
rausgefunden.
z.B. so: (Dabei erzeuge ich 3 Elemente mit jeweils 4 Zeichen.)char test [3][4]={"abcd","efgh","ijkl"};
Jetzt mein Problem:
ich möchte z.b. eine bestehende Variable vom Typ Char in das zweite
Element meines zweidimensionalen Arrays einfügen. Wie mach ich das?also z.B.
char test1 [4]="baum";
char test [3][4];der Inhalt von test1 soll jetzt im zweiten Element von test stehen.
Wie mache ich das? Ich bekomme es nicht hin. Geht das überhaupt?Vielen Dank
-
Hallo,
ja, das geht.
Zeichenweise kannst du die Buchstaben kopieren.Edit: Stuss entfernt.
-
char test [3][4]={"abcd","efgh","ijkl"};
Ist nicht so gut, da bei Stringliteralen automatisch noch die '\0' für das Stringende angefügt wird.
Also brauchst du Platz für 5 Zeichen.Du kannst das auch mit strcpy machen. Dafür ist es da.
char test1 [5]="baum"; char test [3][5]; strcpy(test [1], test1); // reicht schon
Wenn du aber unbedingt auf dei 4 Zeichen bestehst:
char test1 [4]="baum"; char test [3][4]; strncpy(test [1], test1, 4); // Achte auf das n in strncpy ;)
-
wow...vielen Dank.
Diesen Befehl kannte ich noch gar nicht.
-
strncpy ist eine unselige Funktion, die du besser nicht benutzen solltest.
Zeichenfolgen ohne abschließendes '\0' wie in deinem Beispiel kannst du anschließend nicht im Stringkontext verwenden, also nicht bei str*, printf("%s",scanf("%s" usw.