一句英语,每个单词之间若干个空格隔开,找出句子中最长的单词,计算长度,并输出。
#include <stdio.h>
#include <string.h>
int main()
{
char str[512] = {0};
char tmp[50] = {0};
int length;
int i = 0;
int n = 0;
int max = 0;
char maxstr[100] = {0};
gets(str);//gets 最后要回车才能输入,回车就变成了0(结束符)
length = strlen(str);
for(i = 0; i <= length; i++)
{
//不是空格就把字符存下来 str[i] != 0的判断是因为字符串结束后面
//没有空格了,不这样的话最后一个单词就出不来
if(str[i] != ' ' && str[i] != 0)
{
n++;
tmp[n - 1] = str[i];
}
else
{
//对n进行判断是因为,碰到一个空格说明单词结束,先输出出来,然后n置0
//如果有多个空格的话,在遇到第一个空格时,n已经为0,然后直接continue跳过就是
if(n != 0)
{
tmp[n] = 0;
if(n > max)
{
max = n;
strcpy(maxstr,tmp);
}
n = 0;
}
}
}
printf("The longest word is:%s\n",maxstr);
return 0;
}