Kleine Schwierigkeit mit Arrays: Palindrom ja oder nein?
-
314159265358979 schrieb:
Um mal den Trick von volkard zu klauen:
std::cout << str << " ist " << std::equal(str, str + length, cr_iter(str + length)) + "kein Palindrom.\n";Was war daran besser als das schon gesehene
std::cout << word << " ist " << std::equal(word.begin(), word.end(), word.rbegin()) + "kein Palindrom.\n";?
Mir fällt nur eine weitere Definition cr_iter auf, daß ich, um den Code zu verstehen, an mehr Ecken zugleich lesen muß. Und daß die Zeilen zufällig genau gleich viele Zeichen haben.
-
Er wollte es doch mit einem Array haben. Ich dachte mir, mit der Definition kann er es besser lesen. Ich hätte das typedef ansonsten auch weggelassen.
-
314159265358979 schrieb:
Er wollte es doch mit einem Array haben. Ich dachte mir, mit der Definition kann er es besser lesen. Ich hätte das typedef ansonsten auch weggelassen.
Achso. Jaklar. Jetzt ist es ein Array. Das hatte ich glatt übersehen.
-
Ich möchte was von Deinem Stoff haben. Meine Adresse haste ja. Weitere Geschäfte per Mail.
-
Wie bitte?

-
volkard schrieb:
?: doch nicht.
std::cout << word << " ist " << std::equal(word.begin(), word.end(), word.rbegin()) + "kein Palindrom.\n";Ich hätt lieber den Stoff von dem hier..
Meine Fresse hat das gedauert bis ich es gepeilt hab.
-
@ 314159265358979Und getch() ist auch nicht gerade toll, nimm lieber std::cin.get();

Ich verwende getch(); am Ende, damit die Konsole nicht automatisch schließt, wie du dir bestimmt gedacht hast.
cin.get(); ist eine etwas problematische Wahl.
cin.get(); liest nämlich sofort die im Puffer verbleibenden Eingaben ein.Habe ich also zuvor eine Eingabe getätigt und diese mit Enter bestätigt, so wird ein Zeilenvorschub(Enter-Taste) im Puffer zurückbleiben. Verwende ich nun am Ende cin.get(), so wird der Zeilenvorschub aus dem Puffer automatisch eingelesen und die Konsole schließt sich.
Ein doppeltes cin.get() würde das Problem natürlich lösen. Ebenfalls ein cin.ignore(); würde ausreichen, welches das letzte Zeichen im Puffer löscht.Das ist der Grund, warum ich getch(); wähle. Dieses greift nämlich nicht auf den Puffer zu. Wollte bloß nochmal Stellung dazu nehmen.
Ansonsten danke ich für die Vorschläge, die hier gegeben wurden. Hab's nun auf viele Varianten versucht. Auch wenn es länger gedauert hat. Es klappt.

Das Thema kann (meinetwegen) beendet werden.