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 !!
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.
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
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.
jugiii Geschrieben 16. Juni 2009 Autor Geschrieben 16. Juni 2009 hat jemand nun evtl. eine Erklärung für diese Aufgabe ?:confused:
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.
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.
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.
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?
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
jugiii Geschrieben 16. Juni 2009 Autor Geschrieben 16. Juni 2009 das ist ja echt kompliziert. kann man das nicht einfacher gestalten ?
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.
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde Dich hier an.
Jetzt anmelden