最长公共英文单词
题目描述
输入两个字符行,从中找出在两个字符行中都出现的最长的英文单词。约定英文单词全由英文字母组成,其它字符被视作单词之间的分隔符。
输入
有多组数据,每组输入两个字符行。
输出
输出最长公共英文单词。若不存在,则输出”No common word!”。
样例输入
Hi, Steve Jobs. How are you?
Fine. There are lots of original ideas about new iphone in my mind.
样例输出
are
提示
输入字符串用函数gets()。
我的代码
#include
#include
int main()
{
char a[100],b[100];
int m=0,n=0;
int len1=strlen(a);
int len2=strlen(b);
char al[100][100],bl[100][100];
int i,j;
int x=0;
int y=0;
int most=0;
int start=0;
int flag=0;
for(i=0;i
{
if(a[i]>='A'&&a[i]<='Z'||a[i]>='a'&&a[i]<='z')
{
al[m][n++]=a[i];
}
else
{
al[m++][n]='\0';
n=0;
}
}
for(i=0;i
{
if(b[i]>='A'&&b[i]<='Z'||b[i]>='a'&&b[i]<='z')
{
bl[x][y++]=b[i];
}
else
{
bl[x++][y]='\0';
y=0;
}
}
for(i=0;i<=m;i++)
{
for(j=0;j<=x;j++)
{
if(strcmp(al[i],bl[j])==0)
{
flag=1;
if(strlen(al[i])>most)
{
most=strlen(al[i]);
start=i;
}
}
}
}
if(flag==1)
{
printf("%s",al[start]);
}
else
{
printf("No common word!");
}
return 0;
}
题主的代码都没有看到输入,肯定有问题,要在len1,len2前面加个gets输入