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.
    geloescht

    Das 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? 😃


Anmelden zum Antworten