额,求各位帮忙看下我这个程序,为什么最后输出不正确?
这个程序是实现在字符串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 编辑 ]