char* + char



  • wie kann ich einem char* ein char anhängen?



  • Ein char array erstellen das einen char mehr enhalten kann als der Speicherbereich deines Pointers. Dann den alten Speicherbereich und den char in das in das neue Array kopieren.
    Falls der Speicherbereich auf den dein Pointer zeigt noch nicht vollständig belegt ist kannst du den char gleich direkt hinter den belegten Speicher kopieren.



  • ok 👍



  • und wie kann ich eine bestimmte anzahl von zeichen am ende von char* abschneiden?

    also soetwas wie "char* cut(char* sz, int i);" im folgenden beispiel programmieren? :

    char* sz = "hallo!!";
    cout << cut(sz,2); //hallo wird ausgegeben also wurden die letzten 2 abgeschnitten
    


  • Wenn du C++ benutzt (schliesse ich einfach mal aus deinem cout ), dann benutz bitte gleich std::string nehmen.
    Mit der Methode append oder dem + -Operator kannst du was anhaengen, mit resize koenntest du den String auf eine bestimmete Laenge stutzen (z.B. str.resize(str.length()-2 um ihn um 2 Buchstaben zu kuerzen).
    Wobei es fuer das Abschneiden, abhaengig davon, was du genau machen willst, ggf. noch bessere Wege gibt; guck dir einfach mal den Link an.



  • Entweder du erstellst ein neues kürzeres char-Array und kopierst da eben auch nur den entsprechenden Teil rein. Oder du setzt sz[strlen(sz) - 2] = 0;



  • Thema bitte verschieben nach C



  • xycyxc schrieb:

    Entweder du erstellst ein neues kürzeres char-Array und kopierst da eben auch nur den entsprechenden Teil rein. Oder du setzt sz[strlen(sz) - 2] = 0;

    Super Idee!

    Der Index kann dann so schön negativ werden ...



  • merano schrieb:

    Der Index kann dann so schön negativ werden ...

    Sicher? 🤡



  • Sicher? 🤡

    Ja. Oder viel zu groß wenn du einen vorzeichenlosen Index hast.
    Aber trotzdem ist

    sz[strlen(sz) - 2] = 0;
    

    die beste Lösung, die kleine Abfrage zur Überprüfung des Index ist nicht die Welt.
    Außerdem hat man beim umkopieren das selbe Problem wenn man von einem 1 char langen string 2 Zeichen wegnimmt 🙄


Log in to reply