一个非常简单的C程序请人帮忙

来源:百度知道 编辑:UC知道 时间:2024/05/19 03:00:41
#include<stdio.h>
main()
{void scpy();
char a[20]={"wangyuqing"};
char b[20]={"liuqihong"};
scpy(a,b);
}
void scpy(char a[20],char b[20])
{int i=0;
while((*a++=*b++)!='\0')
i++;
printf("%s",a);

}
没有错误提示但为什么没东西输出啊

有个不会 提示的错物,就是数组做参数时,[]里不要有数字,系统按址传递。
如: void scpy(char a[],char b[]){。。。。}
所以可以另外设个参数,说明数组长度。等等
改成如下:
#include<stdio.h>
void scpy(); /*声明弄开头*/
main()
{char a[20]={"wangyuqing"};
char b[20]={"liuqihong"};
scpy(a,b);
}
void scpy(char a[],char b[])
{int i=0;
while((a[i]=b[i])!='\0') /*你原来的i没用,估计这错了*/
i++;
printf("%s",a);
getch(); /*这一句是防止运行时一闪而过的现象,可无*/
}
这就行了。。。
有事我邮箱houku11@126.com

void scpy(char a[20],char b[20])
{int i=0;
while((*a++=*b++)!='\0')
i++;
printf("%s",a);

}

因为当 while 循环结束时 a的位置是在字符串结尾 '\0'
的地方
所以 在 scpy 里
printf("%s",a);
显示 的就是 长度为 0 的空串了

main()
{
char a[20]={"wangyuqing"};
char b[20]={"liuqihong"};
scpy(a,b);

printf("%s",a