求解C语言的一个程序问题!

编写一个程序,其中包含一个子函数,功能为将a,b两个字符串中共有的字符存储至数组c中并输出。要求:子函数形式为:voidseek(char*a,*b,*c);#inclu... 编写一个程序,其中包含一个子函数,功能为将a,b两个字符串中共有的字符存储至数组c中并输出。要求:
子函数形式为:void seek(char *a,*b,*c);

# include <stdio.h>
# include <string.h>
void seek(char *a,char *b,char *c)
{
int m,i,j=0,n;
m=strlen(a);
for(i=0;i<m;i++)
if(*(a+i)==*(b+i))
{
*(c+j)=*(a+i);
j++;
for(n=i;n<m;n++)
if(*(a+n)==*(a+i))
*(a+n)='\0';
}
}
void main()
{
char a[80],b[80],c[80];
char *x=a,*y=b,*z=c;
printf(" 输入字符串a:");
scanf("%s",&x);
printf(" 输入字符串b:");
scanf("%s",&y);
seek(x,y,z);
printf("包含共有字符的字符串c:%s\n",c);
}

总是不能运行,内存不能为read什么的。求改正求解答!~
展开
 我来答
437384801
2012-12-05 · TA获得超过1867个赞
知道小有建树答主
回答量:1299
采纳率:0%
帮助的人:522万
展开全部
a,b的长度不一样啊,如果b的长度《a的长度,坑定报错。
应该加上判断是否“\0”
更多追问追答
追问
可是我输入的时候是a的长度<b的长度啊。。还是不能运行。。。输完a,b两个字符串就不能运行了。。能帮我改改么~谢谢!
追答
void main()
{
char a[80],b[80],c[80];
char *x=a,*y=b,*z=c;
printf(" 输入字符串a:");
scanf("%s",x);
printf(" 输入字符串b:");
scanf("%s",y);
seek(x,y,z);
printf("包含共有字符的字符串c:%s\n",c);
百度网友e1e3fbc5a
2012-12-06 · TA获得超过1159个赞
知道小有建树答主
回答量:4215
采纳率:50%
帮助的人:1137万
展开全部
花流程图
使用Windows调试工具,价值
预计不会看到了错误类型的断点,最基本的语法错误记忆出界野指针,
4个模块,然后设计各个模块尽可能不依赖的模块程序上的不足仍然可以运行
具体实现的编程技巧,而不是一个说,两个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
林艺辉618
2012-12-05
知道答主
回答量:89
采纳率:0%
帮助的人:26.6万
展开全部
#include <stdio.h>
#include <string.h>
void seek(char *a,char *b,char *c)
{
int i=0,j=0,z=0,n;
n=strlen(b);
while(a[i])
{for(j=0;j<n;j++)
if(a[i]==b[j])
c[z++]=a[i];
i++;
}
c[z]='\0';
}
void main()
{
char a[80],b[80],c[80];
printf(" 输入字符串a:");
scanf("%s",a);
printf(" 输入字符串b:");
scanf("%s",b);
seek(a,b,c);
printf("包含共有字符的字符串c:%s\n",c);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友a666c85
2012-12-05 · 超过21用户采纳过TA的回答
知道答主
回答量:61
采纳率:0%
帮助的人:60.2万
展开全部
# include <stdio.h>
# include <string.h>
void seek(char *a,char *b)
{

int m,i,j=0,n;
m=strlen(a);
printf("包含共有字符的字符串c:\n");
for(i=0;i<m;i++)

if(*(a+i)==*(b+i))
{
printf("%c",*(a+i));
for(n=i;n<m;n++)
if(*(a+n)==*(a+i))
*(a+n)='\0';
}
}
void main()
{
char a[80],b[80];
//char *x=a,*y=b,*z=c;
printf(" 输入字符串a:");
scanf("%s",a);
printf(" 输入字符串b:");
scanf("%s",b);
seek(a,b);

}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友91292b5
2012-12-05 · TA获得超过484个赞
知道小有建树答主
回答量:351
采纳率:72%
帮助的人:99.1万
展开全部
内存非法访问,如果a字符串长度大于b,那么以a的长度去访问b就不能访问了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
czd111340113
2012-12-05 · 超过14用户采纳过TA的回答
知道答主
回答量:38
采纳率:100%
帮助的人:41.2万
展开全部
首先有个很明显的错.....xyz已经是指针了,scanf时应该不要&的,然后还有别的错,在慢慢找找
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式