输入一行字符,输出最长的单词。怎么做。
这个问题刚开始我觉得简单,可是做了一会儿却没有想出。输入一行字符,求出有几个单词这个我会。
#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); } } }代码: