#include<stdio.h>
int Split(char[],char[][101]);
int main()
{
char str[101],words[100][101];
int i,counts;
gets(str); //读取一行字符串
counts=Split(str,words); //将最长的单词存入数组words,返回最长的单词数
for(i=0;i<counts;i++)
puts(words[i]);
return 0;
}
int Split(char s[],char w[][101]) {
int i,j=0,k=0,a[101],t;
for(i=0;;i++){
if((s[i]>='a'&&s[i]<='z')||(s[i]>='A'&&s[i]<='Z')){
w[k][j]=s[i]; j++;
}else{
a[k]=j;
if(s[i]=='\0'){
break;
}
else{
k++;
j=0;
}
}
}
int max=a[0],cnt=1;
for(i=1;i<=k;i++){
if(max==a[i])cnt++;
if(max<a[i]){
max=a[i];
cnt=1;
}
}
for(i=0,j=0;i<=k;i++)
if(a[i]==max){
for(t=0;t<max;t++)
w[j][t]=w[i][t];
w[j][t]='\0';
j++;
}
return cnt;
}
只输入一个单词时有个bug,会多出一行