| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 450 人关注过本帖
标题:你能把这个写出来的话,牛
取消只看楼主 加入收藏
喜雨
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-6-30
收藏
 问题点数:0 回复次数:1 
你能把这个写出来的话,牛
编写一个程序,求出以下两个字符串包含的最长的相同的单词(同一字母大小写视为不同字符).规定单词全由英文字组成.单词之间由一个或多个空格符分隔..
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");
}
2007-08-30 00:35
喜雨
Rank: 1
等 级:新手上路
帖 子:27
专家分:0
注 册:2007-6-30
收藏
得分:0 
又研究了一下,不对..
原来二维数组设得太小了.装不下programming...
把10换成15.通过.
yeah....
2007-08-30 00:37
快速回复:你能把这个写出来的话,牛
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.035512 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved