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.


Anmelden zum Antworten