输入一行字符,输出最长的单词。怎么做。
这个问题刚开始我觉得简单,可是做了一会儿却没有想出。输入一行字符,求出有几个单词这个我会。
程序代码:#include <stdio.h>
#include <string.h>
main()
{
char a[20][20];//定义二维数组,可存储20个,每个最长为20的单词
int i,j,len,max=0;
char c ;
printf("请输入一行字符,以回车结束: ");
for(i=0;i<20;++i)
{
j=0 ;//j每次都要从0开始
while((c=getchar())!='\n'&&c!=' ')//当输入的字符不为回车或者空格时
{
a[i][j]=c;
j++;
}
if(c==' ') a[i][j]='\0' ;//如果扫描到是空格,则加0
if(c=='\n')//如果扫描到是回车,则加0并退出
{
a[i][j]='\0' ;
break ;
}
}
len=i+1 ;//len就是单词的个数
for(i=0;i<len;++i)//此循环找到最大单词的个数并保存在max中
{
if(max<strlen(a[i]))
max=strlen(a[i]);
}
for(i=0;i<len;++i)//此循环把所有长度等于max的单词都输出
{
int t;
if(strlen(a[i])==max)
{
t=i;
printf("最长的单词为%s,长度为%d\n",a[t],max);
}
}
}代码: