你能把这个写出来的话,牛
编写一个程序,求出以下两个字符串包含的最长的相同的单词(同一字母大小写视为不同字符).规定单词全由英文字组成.单词之间由一个或多个空格符分隔..s[]="This is C programming text"
t[]="This is a text for C programming"
输出programming
这本是一书上的题,可是书上的代码根本就行不通..
小生不才,自己写了一个:如下,不过也还差那么一点..请指教一下..不胜感激..
#include "stdio.h"
#include "string.h"
#include "stdlib.h"
void maxword(char *s,char *t)
{
char *ss[10],*tt[10],a[10][10],b[10][10];
int i,j,m=0,n=0,q=0,p;
while(*s!='\0')
{
while(*s==' ') s++;
for(i=0;*s!=' '&&*s!='\0';i++,s++)
a[m][i]=*s;
a[m][++i]='\0';
m++;
if(*s!='\0') s++;
}
while(*t!='\0')
{
while(*t==' ') t++;
for(i=0;*t!=' '&&*t!='\0';i++,t++)
b[n][i]=*t;
b[n][++i]='\0';
n++;
if(*t!='\0') t++;
}
for(i=0;i<m;i++)
ss[i]=a[i];
for(i=0;i<n;i++)
tt[i]=b[i];
for(i=0;i<m;i++)
{
for(j=0;j<n;j++)
{
if(strcmp(ss[i],tt[j])==0)
{
if(strlen(ss[i])>q)
{
q=strlen(ss[i]);
p=i;
}
}
}
}
if(q==0)
printf("there is no such word.");
else
printf("%s\n",ss[p]);
}
main()
{
static char s[]="This is C programming text";
static char t[]="This is a text for C programming";
printf("result:\n");
maxword(s,t);
system("pause");
}