2d Feld (char)



  • Hallo,

    ich habe hier ein Problem mit einem kleinen Programm. Ich habe das Gefühl, das es an dem 2 dimensionalen Feld vom Typ 'char' liegt.

    Deshalb die Frage:
    Nehmen wir mal an, ich möchte 20 Textzeilen der Länge von 28 Zeichen (incl. Leerzeichen) in einem 2d Feld speichern,

    wie müsste das aussehen?

    1.)

    char feld[20][28];
    

    .. oder
    2.)

    char feld[28][20];
    

    ?

    ... und wie kann ich dann anhand eines Pointers auf eine Textzeile (z.b. die zweite) zugreifen?

    so:

    cout<<*feld[2];
    

    Ich wäre euch dankbar, wenn man mich über die ganze Sache aufklären könnte 🙂



  • char feld[20][28];
    
    cout << feld[2][0];
    


  • Hi!

    Das erste ist das was du suchst. Das sind 20 Felder die jweils 28 chars aufnehmen können (bzw. 27+Endekennung). Was du machst ist auf das erste Zeichen der 2. Zeichenkette zugreifen. Wenn du die ganze Zeichenkette haben willst musst du nur array[2] schreiben. Wenn du allerdings den Zeiger verschieben willst solltest du erst einen zweiten Zeiger zur Hand nehmen, damit du einen hast der weiterhin auf den Anfang deines Arrays zeigt.

    Code-Hacker



  • @randa: das dürfte doch nur das erste Zeichen der Zeile ausgeben, oder irre ich mich da?



  • randa schrieb:

    char feld[20][28];
    
    cout << feld[2][0];
    

    bullshit, das gibt nur 1 zeichen aus



  • bullshit, ich habs halt falsch verstanden. kaum ist mal was falsch, kommen drei und geben nen kommentar dazu. Den Pointer auf den array an der Position zwei bekommt man logischerweise durch feld[2].
    Man man.



  • Reg dich nicht auf, ich gebe dir Recht, aber so ists nunmal. Nervt natürlich mega, vor allem wenn nur kritisiert wird und ansonsten auch nix Sinnvolles kommt.



  • ich melde mich zurück, nachdem mir mein Windows seit neustem den Zutritt zum Internet verwehrt 😞

    ... auch wenn es mir sinnlos erscheint noch hierauf zu antworten...

    daran lags nicht, bis auf die Ausgabe war der rest richtig, dafür hab ich jetzt ein neues Problem 🙂

    http://www.c-plusplus.net/forum/viewtopic.php?p=595330#595330


Anmelden zum Antworten