Text in char matrix



  • hallo,

    wie bekomme ich einen text in eine matrix?

    char text[5][8];
    
    *text[0]="hallo";
    *text[1]="test";
    ...
    

    so gehts nicht 😞

    und so ist mir zu aufwändig

    char text[5][8];
    
    text[0][0]='h';
    text[0][1]='a';
    text[0][2]='l';
    ...
    

    hab ich bei der ersten variente irgend nen zeiger problem?!?

    danke schonmal



  • strcpy_s(text[0], 5, "test");
    


  • Oder strncpy, strcpy_s ist MS-spezifisch.



  • std::vector< std::string > ?
    

    😃



  • Natürlich sollte man vector<string> vorziehen, falls möglich. Nichtsdestotrotz sollten die Basics sitzen:

    wiegeht schrieb:

    char text[5][8];

    Diese Definition kannst Du "von innen nach außen" lesen: text ist ein Array von 5 Arrays von 8 Zeichen.

    wiegeht schrieb:

    *text[0]="hallo";
    *text[1]="test";
    so gehts nicht

    Ist auch gut so; denn text[0] und text[1] beziehen sich jeweils auf ein Array von 8 Zeichen (keine Zeiger).

    std::strncpy aus <cstring> kann Dir hier helfen, wie schon erwähnt wurde. Allerdings musst Du bei der Nullterminierung aufpassen. Dein Array sollte vorher mit Nullen gefüllt werden und der 3. Parameter für strncpy sollte 7 nicht überschreiten, damit immer noch eine Nullterminierung erhalten bleibt.

    Gruß,
    SP



  • Am besten gleich mit Initialisierung:

    const char *text[5] =
    {
      "Hallo",
      "Test",
      "A",
      "B",
      "C"
    };
    

    Sofern du nachher nur lesend darauf zugreifst.


Anmelden zum Antworten