AcWing 774. 最长单词
原题链接
中等
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
int main() {
char str[500];
int len,count=0,max_len=0,,max_end=-1;
cin.getline(str,500);
len=strlen(str);//字符串总长度
str[len]=' ';//字符串末尾追加空格,用于判断最后一个单词结束
for(int i=0; i<len; i++) {
if(str[i]!=' '&&str[i]!='.') {//空格 逗号作为单词分隔符
count++;
} else {
if(count>max_len) {
max_len=count;//最长的单词长度
max_end=i;//最长单词的数组下角标结束位置
}
count=0;//计数器归零
}
}
if(max_end<0) { //没有找到,退出程序
cout<<str[0]<<endl;
return 0;
}
for(int i=(max_end-max_len); i<max_end; i++) { //构造轮询,最长单词
cout<<str[i];
}
return 0;
}