先读入句子存到s里,然后遍历s,遇到空格或句号就算一下当前部分长度,要是比记录的最大长度 ml 大,就更新 ml 和起始位置 ms,最后按 ms 和 ml 提取出最长单词 w 并输出。
C++ 代码
#include <iostream>
#include <string>
using namespace std;
int main() {
string s;
getline(cin, s);
int st = 0;
int ml = 0;
int ms = 0;
for (int i = 0; i < s.length(); i++) {
if (s[i] == ' ' || s[i] == '.') {
int l = i - st;
if (l > ml) {
ml = l;
ms = st;
}
st = i + 1;
}
}
string w = s.substr(ms, ml);
cout << w << endl;
return 0;
}