С++. Найти самое длинное слово

Рейтинг: -1Ответов: 1Опубликовано: 18.06.2023

Совсем недавно начал изучать C++, и с одной из решаемых задач возникла проблема. Смысл задачи такой: получить на вход строку состоящую из произвольных ASCII символов, найти и вывести самое длинное слово в ней (словом считается непрерывная последовательность латинских букв). Если существует несколько слов максимальной длины нужно вывести первое из них.

Прикладываю свой код, которому тестирующая система засчитывает Partial Solution.

#include <iostream>
#include <string>

using namespace std;

int main(){
string sentence;
getline(cin, sentence);

string word;

string maximum;

for (int i = 0; i < sentence.size(); ++i){
    if (isalpha(sentence[i])){
        word += sentence[i];
    }
    else{
        if (word.size() > maximum.size()){
            maximum = word;
            word.clear();
        }
        else{
            word.clear();
        }
    }
}
cout << maximum;
}

Ответы

▲ 2Принят

Если слово максимальной длины будет последним, и после него не будет никакого "неподходящего" символа, то оно не будет проверено, а значит, не будет и засчитано...

Ваш код проще всего изменить, добавив в конце предложения лишний символ, например,

string sentence;
getline(cin, sentence);
sentence += '.';