In C multidemensionale String Arrays



  • Hallo Leute,

    ich brauche mal unbedingt eure Hilfe, da ich einfach nicht die Lösung meines Problems weiß.

    Leider ist vorgegeben, dass ich in C programmieren soll. In c++ wüsste ich schon, wie ich das Problem beheben könnte, wahrscheinlich.

    Also folgende Aufgabe, ich habe ein Multidemensionales Array, was den Datentyp char besitzt. Nun möchte ich, z.B. dem array[1][20]="Namen" zuweisen. In einem eindemesionalen Array funktioniert das mit strcpy. Kann strcpy auch multidemensional? Hab das schon ausprobiert aber entweder die Syntax ist falsch oder die Funktion kann das einfach nicht.

    Gibts dazu ne andere Funktion oder muss man über umwege diesen String definieren. Bei c++ gibts den tollen Datentyp AnsiString, den ich schon sehr doll vermisse 😃

    Könnt ihr mir noch folgen? 😃 Vielen Dank schon mal im Voraus 😉



  • 1. Es heißt "multidimensional (von Dimensionen)

    2. Nö, AnsiString gibt es in (Standard-)C++ nicht. Das ist VCL-Kram.

    3. Klar, geht. Kommt drauf an, wie dynamisch du es brauchst. Wenn du Anzahl der Strings und maximale Länge schon vorher kennst, geht es ganz einfach:

    char strArr[20][100];
    strncpy(strArr[0],"mein Name",100);
    strncpy(strArr[1],"dein Name",100);
    strncpy(strArr[2],"sein Name",100);
    

  • Mod

    JaBBa88 schrieb:

    Hallo Leute,

    ich brauche mal unbedingt eure Hilfe, da ich einfach nicht die Lösung meines Problems weiß.

    Leider ist vorgegeben, dass ich in C programmieren soll. In c++ wüsste ich schon, wie ich das Problem beheben könnte, wahrscheinlich.

    Dann ist ja gut, dass du gezielt im C++ Forum fragst 👎

    Also folgende Aufgabe, ich habe ein Multidemensionales Array, was den Datentyp char besitzt. Nun möchte ich, z.B. dem array[1][20]="Namen" zuweisen. In einem eindemesionalen Array funktioniert das mit strcpy. Kann strcpy auch multidemensional? Hab das schon ausprobiert aber entweder die Syntax ist falsch oder die Funktion kann das einfach nicht.

    Da passt schonmal was nicht, denn wenn der Datentyp des arrays char ist, kannst du den Elementen kein char[6] wie "Namen" zuweisen. Prinzipiell funktioniert strcpy aber im Zusammenhang mit multidimensionalen Arrays. Man macht alles genauso wie bei eindimensionalen char-Arrays. Ungefähr so:

    char sample[]="Hello World!";
    char str[1][20];
    strcpy (str[0],sample);
    

    Gibts dazu ne andere Funktion oder muss man über umwege diesen String definieren. Bei c++ gibts den tollen Datentyp AnsiString, den ich schon sehr doll vermisse 😃

    AnsiString gibt es in C++ nicht. Es gibt aber einen Datentyp namens std::string, den du wahrscheinlich auch ganz doll vermissen würdest, wenn du ihn kennen würdest. Wenn du ihn nicht kennst, solltest du ihn dir mal angucken.

    Könnt ihr mir noch folgen? 😃 Vielen Dank schon mal im Voraus 😉

    Formulier dein Problem nochmal ganz genau.
    1. Von welchem Typ ist das Array?
    2. Was soll hinterher in welchem Element stehen?
    3. Nach deiner bisherigen Beschreibung vermute ich, dass die C-Strings die zugewiesen werden sollen eine vorgegebene Maximallänge haben, ist dies richtig?



  • Ist ja schon ganz nett, dass man einfach hier runtergemacht wird. Dachte das wäre ein Forum, in dem man freundlich aufgenommen wird, wenn man Probleme hat.

    Nun ja, danke trotzdem für eure Hilfe.



  • Wo bist du denn runtergemacht worden? Ist das jetzt wegen dieser "C-im-C++-Forum"-Sache oder wie? 😕


Log in to reply