问题 : 输出最长单词
题目描述
输入一行字符(长度不超过500),将此字符串中最长的单词输出
输入
简单英文句子(长度不超过500),只包含字母和空格,单词之间用空格分隔,没有缩写形式和其它特殊形式。
输出
该句子中最长的单词。如果多于一个,则输出第一个。
样例输入
I am a student of Peking University
Made by hxl.
样例输出
University
#include<stdio.h>
int main()
{
char str1[500];
int i,cnt=0,max=0,j; //cnt:单词长度计数
//max:最长单词的长度
//j:标记最长单词的末尾位置
gets(str1);
for(i=0;str1[i]!='\0';i++)
{
cnt++;
if(str1[i]==32)
cnt=0;
else if(cnt>max)
{
max=cnt;
j=i;
}
//每一个字符时计数 +1,如果为空格(ASCII 32),则清空计数
//比较并更新最新长度 max,确定最长单词末尾位置 j
}
for(i=j-max+1;i<=j;i++) //根据 j与 max,输出最长单词
printf("%c",str1[i]);
return 0;
}
运行测试
I persist, therefore i am. 😃