jugiii Geschrieben 16. Juni 2009 Geschrieben 16. Juni 2009 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 !! Zitieren
TDM Geschrieben 16. Juni 2009 Geschrieben 16. Juni 2009 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. Zitieren
jugiii Geschrieben 16. Juni 2009 Autor Geschrieben 16. Juni 2009 find ich auch kompliziert, aber so steht es in meinem Lehrheft. Ich will ja auch gerne die komplizierten Texte verstehen Zitieren
TDM Geschrieben 16. Juni 2009 Geschrieben 16. Juni 2009 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. Zitieren
jugiii Geschrieben 16. Juni 2009 Autor Geschrieben 16. Juni 2009 hat jemand nun evtl. eine Erklärung für diese Aufgabe ?:confused: Zitieren
Klotzkopp Geschrieben 16. Juni 2009 Geschrieben 16. Juni 2009 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. Zitieren
jugiii Geschrieben 16. Juni 2009 Autor Geschrieben 16. Juni 2009 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. Zitieren
0815FIA Geschrieben 16. Juni 2009 Geschrieben 16. Juni 2009 genau. und dann holt er den letzten aus zkette und packt ihn an die stelle in tempkette. Zitieren
TDM Geschrieben 16. Juni 2009 Geschrieben 16. Juni 2009 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? Zitieren
0815FIA Geschrieben 16. Juni 2009 Geschrieben 16. Juni 2009 7, 6, 5, 4, 3, 2, 1, 0 7 oder 8 Mal? hab ich glatt überlesen Zitieren
jugiii Geschrieben 16. Juni 2009 Autor Geschrieben 16. Juni 2009 das ist ja echt kompliziert. kann man das nicht einfacher gestalten ? Zitieren
TDM Geschrieben 16. Juni 2009 Geschrieben 16. Juni 2009 kann man das nicht einfacher gestalten ? Natürlich, aber du hast ja im 2. Post geschrieben, dass du die "komplizierten Texte" verstehen willst. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.