C程序我自己写的字符串(mycay)连接程序,有一处输出我看不懂,请你看补充:

来源:百度知道 编辑:UC知道 时间:2024/06/06 11:33:41
#include <stdio.h>
#include <string.h>
char *mycat(char *s,char *t);
void main()
{char a[80]="abcdefg";
char b[80]="12345";
char c[80]="ABCDEFG";
mycat(mycat(a,b),c);/*这一行输出abcdefg12345ABCDEFG*/
puts(a);
mycat(mycat(b,&b[3]),&b[2]);/*这一行输出我看不懂,我想它应该输出12345 45 34545,空格为醒目,可是它输出12345 45 43454543,这什么来的,我哪里弄错了,谢谢!*/
puts(b);
getch();
}
char *mycat(char *s,char *t)
{int i=0,j=0;
int n=strlen(t);
while(s[i]) i++;
while(n-->=0&&(s[i++]=t[j++])!=0) ;
s[i]=0;
return s;
}

while(n-->=0&&(s[i++]=t[j++])!=0) ; /*这句有问题*/
把 n-->=0 改为 n-->0 /* 字符个数算错了 - -! */

改一下。
char *mycat(char *s,char *t)
{int i=0,j=0;
int n=strlen(t);
while(s[i]) i++;
for (j=0;j<n;j++) s[i+j]=t[j];
return s;
}