Veröffentlicht 16. Juni 200916 j hallo zusammen ! Ich habe hier einen Quelltext, den ich nicht ganz verstehe. Das Programm dreht eine Zeichenkette um und gibt sie also umgekehrt aus, z.B. aus Hallo wird ollaH. #include "stdafx.h" using namespace System; String^ umdrehen (String^ zkette); String^ umdrehen (String^ zkette) { String ^tempkette; tempkette = zkette; for (Int32 schleife=zkette->Length-1;schleife>=0;schleife--) { tempkette=tempkette->Remove(zkette->Length-schleife-1,1); tempkette=tempkette->Insert(zkette->Length-schleife-1,Convert::ToString(zkette[schleife])); } return tempkette; } int main (array<System::String ^> ^args) { String^ eingabe; Console::Write("Geben sie eine Zeichenkette ein"); eingabe=Console::ReadLine(); eingabe = umdrehen(eingabe); Console::WriteLine("Die umgekehrte Eingabe {0}",eingabe); return 0; } Was ich jetzt hier nicht kapiere ist dieser Ausschnitt: tempkette=tempkette->Remove(zkette->Length-schleife-1 Was bedeutet denn hier dieses zkette->Length-schleife-1 ? Stimmt das mit dem - vor schleife ? Ist das ein sinnbildliches Minus oder nur ein Verbindungsstrich ? DANKE !!
16. Juni 200916 j Was ich jetzt hier nicht kapiere ist dieser Ausschnitt: tempkette=tempkette->Remove(zkette->Length-schleife-1 Was bedeutet denn hier dieses zkette->Length-schleife-1 ? Stimmt das mit dem - vor schleife ? Ist das ein sinnbildliches Minus oder nur ein Verbindungsstrich ? ich find das zwar unnötig kompliziert, aber theoretisch gehst du einfach nur den String rückwärts durch, schneidest einen hinteren Buchstaben ab und fügst ihn vorn wieder ran.
16. Juni 200916 j find ich auch kompliziert, aber so steht es in meinem Lehrheft. Ich will ja auch gerne die komplizierten Texte verstehen
16. Juni 200916 j Naja, kompliziert ist nur gut, wenns Vorteile (Performance o.Ä.) bringt. Das Simpelste wäre hier sicher einfach den String(-Array) rückwärts durchzuiterieren. Aber ich würde glaub ich eher auf Bitebene arbeiten.
16. Juni 200916 j hat jemand nun evtl. eine Erklärung für diese Aufgabe ?:confused: Was gibt's denn da groß zu erklären? Spiel doch einfach mal in Gedanken durch, welche Werte schleife annimmt, und welche dadurch zkette->Length-schleife-1 hat.
16. Juni 200916 j ok, nehmen wir mal an, das Wort hat 8 Buchstaben. Laut der for Schleife wird diese 7 mal aufgerufen (schleife=zkette->Length-1) dann bei tempkette=tempkette->Remove(zkette->Length-schleife-1,1) müsste so gerechnet werden: 8-7-1 das ist 0. demzufolge müsste das erste Zeichen (hier also das H) gelöscht werden.
16. Juni 200916 j genau. und dann holt er den letzten aus zkette und packt ihn an die stelle in tempkette.
16. Juni 200916 j ok, nehmen wir mal an, das Wort hat 8 Buchstaben. Laut der for Schleife wird diese 7 mal aufgerufen 7, 6, 5, 4, 3, 2, 1, 0 7 oder 8 Mal?
16. Juni 200916 j kann man das nicht einfacher gestalten ? Natürlich, aber du hast ja im 2. Post geschrieben, dass du die "komplizierten Texte" verstehen willst.
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.