输入一行句子(不多于200个单词,每个单词长度不超过100),只包含字母,空格和逗号。单词有至少一个连续的子集构成,空格和逗号都是单词间的间隔。试输出第一个最长的单词和第一个最短的单词。
样例输入
I am studying Programming language C in Peking University
样例输出
Programming
I
切分法:
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#define N 20005
int main()
{
char input[N],str[105][205];
int i,j,row,col;
char max[100],min[100];
while( gets(input)!=NULL)
{
row=0;
col=0;
for(i=0;input[i]!=‘\0‘;i++)
{
if(input[i]!=‘,‘&&input[i]!=‘ ‘)
{
str[row][col]=input[i];
col++;
}
else
{
str[row][col]=‘\0‘;
row++;
col=0;
}
}
str[row][col]=‘\0‘;
strcpy(max,str[0]);
strcpy(min,str[0]);
for(i=1;i<row;i++)
{
if(strlen(str[i])>strlen(max))
{
strcpy(max,str[i]);
}
if(strlen(min)>strlen(str[i]))
{
strcpy(min,str[i]);
}
}
printf("%s\n",max);
printf("%s\n",min);
}
return 0;
}
原文:http://www.cnblogs.com/suisuiya/p/7827737.html