String teilen?



  • Hallo,

    wie teile ich einen String folgendermaßen:

    Ich habe einen String s=abcdefghijklmnop
    danach möchte ich haben:

    s so teilen, dass es nur 4-er Stücke sind und jedes 4-er Stück in eigene Variable:

    s1=abcd
    s2=efgh
    s3=ijkl
    s4=mnop

    Wie mache ich das?

    Ach ja: Ich muss außerdem vorher rausbekommen, an welcher Stelle die Abschlussnull ist!



  • Moin,

    z.B. mit der Funktion

    basic_string substr(size_type pos = 0, size_type n = npos) const;

    z.B.
    std::string s = "abcdefghij";
    std::string s1 = s.substr(0, 4);
    std::cout << s1 << std::endl;

    Wenn Du die Position erst finden musst, dann mit Stringfunktionen z.B.
    find_first_of nach der entsprechenden Stelle suchen.
    Vorher vielleicht noch die Länge mit s.length() ermitteln.



  • Vielen Dank und neue Frage:

    Wie kann ich ein char in ein String umwandeln, um deine Lösung anzuwenden?



  • Du kannst ein char-Array einem string einfach zuweisen oder meinst du wirklich ein einzelnes char? Probier es doch einfach mal aus.



  • Hmm man kann nur nicht beim Initialisieren direkt einen char übergeben, sondern nur einen char-array. Mit = als zuweisungsoperator geht's allerdings.



  • Oder einfach per for-Schleife jedes Element des char-Arrays dem String zuweisen?!

    😕



  • Warum so aufwendig - string hat noch ein paar weitere Ctoren. Z.B. kannst du per string text(data,len); einen String aus einem (nicht nullterminierten) char-Array oder per string text(1,val); aus einem Einzelzeichen erzeugen.


Anmelden zum Antworten