string auslesen
-
Text
-
Evtl. ginge etwas in der Richtung, hab's aber nicht getestet, also kein Garantie:
bool isPalindrom(const string &str) { int i=0,j=str.size()-1; while (i<j) { if (str[i] != str[j]) return false; ++i; --j; } return true; };Btw. Nächstes mal besseren Thread-Titel wählen.
Noch was: man liest strings nicht mit cin>>string; ein, nimm besser getline(cin, string);
-
könnte man sowas nciht elegant mit iteratoren und der algorithmen-bibliothek lösen? Ich bin mir garnicht mehr sicher, ob strings iteratoren haben, aber wenn sie sowohl forward- als auch backward-iteratoren besitzen könnte man es mit for_each oder mismatch machen.
geloescht
-
Text
-
geloescht schrieb:
könnte man sowas nciht elegant mit iteratoren und der algorithmen-bibliothek lösen? Ich bin mir garnicht mehr sicher, ob strings iteratoren haben, aber wenn sie sowohl forward- als auch backward-iteratoren besitzen könnte man es mit for_each oder mismatch machen.
geloeschtDas gleiche habe ich auch sofort gedacht... aber ich denke das geht ein wenig am Zweck & Level dieser Übungsaufgabe vorbei
bool isPalindrome( std::string const& s ) { return equal(s.begin(), s.begin() + s.length()/2, s.rbegin()); }@Aessina dein Code sollte eigentlich, zumindest beim ersten Durchlauf (schau dir an was mit deinem string r geschieht...), funktionieren.
Hast du evtl. Leerzeichen mit eingegeben? Oder ein nicht-Palindrom?