string-element über eine Funktion "trimmen"



  • @wob verstehe schon was bedeutet... aber leider dürfen wir das trotzdem nicht verwenden 😕 ist echt nervig.. wenn ich im netz nach lösungswegen suche, kann ich die hälfte davon meist gar nicht verwenden



  • @wob ich hab mir das mal etwas umstrukturiert. In dieser form ist es für mich sehr viel nachvollziehbarer 😃 vielen dank nochmal!

    string trimme(string s)

    int start = 0;
    do
    {
    	start++;
    } while(s[start] == '+');
    
    int ende = s.length();
    do
    {
    	ende--;
    } while (ende && s[ende - 1] == '+');
    
    string ergebnis;
    for (int i = start; i < ende; i++)
    {
    	ergebnis += s[i];
    }
    
    
    
    return ergebnis;
    

    };



  • @mmm_1482_ sagte in string-element über eine Funktion "trimmen":

    aber leider dürfen wir das trotzdem nicht verwenden

    Das bezweifel ich. Es geht darum, dass ihr nicht so programmiert, wie man es eigentlich machen würde, sondern dass ihr euch selber irgendwas ausdenkt. Ob in deinem Algorithmus nun als Länge int, unsigned, size_t oder was auch immer verwendet wird, ist echt komplett egal.
    Du darfst ja length() verwenden, aber den Rückgabewert nicht nutzen? Das ist doch offenbar quatsch.



  • @mmm_1482_: Was für eine komische Ausbildung machst du denn? So wirst du nie vernünftig C++ lernen!

    Genau die Lösung von @wob meinte ich, aber schade, daß du nicht zuerst darauf gekommen bist...

    PS: Deine Lösung ist falsch (wenn am Anfang oder Ende keine '+'vorhanden sind bzw. ein Leerstring übergeben wird).
    Beim Testen immer die Randfälle beachten. 😉



  • @Th69 ich mach keine ausbildung.. studiere interdisziplinär und habe grundlagen der informatik als modul... muss nur dieses fach bestehen ... ich will keine programmiererin werden 😃 dafür bin ich offenwsichtlich unbegabt 😃

    oh.. hast recht XD ja okay ich belasse es dann doch bei dem vorherigen ergebnis von wob 😃



  • @Jockelx hmm kann sein, dass wir das doch dürfen. Ich lass nur meistens die finger von Methoden, die wir nicht in den vorlesungen besprochen haben 😃



  • @mmm_1482_ sagte in string-element über eine Funktion "trimmen":

    oh.. hast recht XD ja okay ich belasse es dann doch bei dem vorherigen ergebnis von wob

    Naja, du kannst meine Lösung schon umschreiben (warum auch nicht, Übung macht den Meister!). Du sollst sie ja verstehen. Und du solltest auch verstehen, warum sie korrekt ist. Warum ich beim start_idx im while zum Beispiel nicht auf die Länge checken muss, sollte dir klar sein. Wenn nicht, bau da noch einen Check ein... 🙂

    Vielleicht noch generell: ich habe früher gedacht, dass man do {...} while(...) oft braucht. Ich habe aber festgestellt, dass man das nur sehr selten benötigt und while(...) { ... }, also mit Check am Anfang, viel häufiger sinnvoll ist.


  • Gesperrt

    Dieser Beitrag wurde gelöscht!


  • @mmm_1482_ sagte in string-element über eine Funktion "trimmen":

    @wob ich hab mir das mal etwas umstrukturiert. In dieser form ist es für mich sehr viel nachvollziehbarer 😃 vielen dank nochmal!

    string trimme(string s)

    int start = 0;
    do
    {
    start++;
    } while(s[start] == '+');

    int ende = s.length();
    do
    {
    ende--;
    } while (ende && s[ende - 1] == '+');

    string ergebnis;
    for (int i = start; i < ende; i++)
    {
    ergebnis += s[i];
    }

    return ergebnis;
    };

    du musst dein int start = 0 auf -1 setzen weil start direkt im ersten durchlauf auf 1 geht und bei int ende = s.length() musst du int ende = s.length() +1 setzen


  • Mod

    Den Thread hat ein Bot nekromantiert. Die Fragen sind längst beantwortet. Geschlossen.


Anmelden zum Antworten