#include
#include
#include
int main()
{
char ch[100];
int i,j,len,maxlen,p;
i=len=maxlen=0;
printf("\n输入一串字符:");
gets(ch);//输入字符串,以空格分割单词
do
{ j=i;//新单词开始位置
for(len=0;ch[i]!=' '&&ch[i]!='\0';i++)//计算当前单词的长度
{
len++;
}
if(len > maxlen)//如果新单词长度大于原来的最大长度
{
maxlen=len;//新单词的长度赋值为最大长度
p=j;//标记新单词开始的位置
}
if(ch[i] != '\0') i++;//i加一
}while(ch[i]!='\0');
printf("\n");
if(len==0)
printf("\n没有输入单词!");
else
{
for(i=p;i <= p+maxlen;i++)//输出最长的单词
printf("%c",ch[i]);
printf("\n");
}
}
怎么记录最长单词呢。
肯定 有2个记录;
1.记录当前的单词,
2.记录已知的最长的单词。
3.1和2比较,记录最长。
很显然,以上3点都没有做到