额,求各位帮忙看下我这个程序,为什么最后输出不正确?
这个程序是实现在字符串s1中的指定字符ch位置处插入字符串s2。 但是最后一直输不出正确的结果,求各位帮忙 看看是哪里错了 谢谢啦
程序代码:#include<stdio.h>
#define L 20
int search(char *p1,char *p2,char c)//用来检索和插入
{
char a[L];
int i;
for(i=0;i<=L-1;i++)
{
a[i]=*p1;
if(a[i]==c)
while(*p2!='\n')
{
i++;
a[i]=*p2;
p2++;
}
p1++;
}
return a[L];//这里这个a[L]就已经是我要得到的那个数组了
}
int att(char a[L])//用来输入数组
{ int i;
for(i=0;i<=L-1;i++)
{
a[i]=getchar();
if(a[i]=='\n')
break;
}
return a[L];
}
int main()
{
int i;
char *m, *n,c;
char a[L]={0};
char b[L]={0};
char d[40]={0};
printf("输入一段字符:");
a[L]=att(a);
printf("再输入一段字符:");
b[L]=att(b);
printf("输入指定字符:");
c=getchar();
m=a,n=b;
d[40]=search(m,n,c);
printf("插入后的字符:");
for(i=0;i<=L;i++)
{
if(d[i]=='\n')
break;
else
printf("%c",d[i]);//d[40]输出地不是我想要的
}
printf("\n");
return 0;
}[ 本帖最后由 深之森 于 2011-12-7 13:57 编辑 ]










