求助:用指针复制字符串
程序代码:#include<stdio.h>
int main()
{
void cpoy(char *from,char *to);
char *a="I am a teacher.",b[]="You are a student.";//*a与b[]
char *b1=b;//把b的值给b1
printf("a[]=%s\n",a);
printf("b[]=%s\n",b);
cpoy(a,b1);//把a中的字符串复制到b中,这里前面用到的b1=b
printf("复制后b[]=%s\n",b);
return 0;
}
void cpoy(char *from,char *to)
{
for(;*from!='\0';from++,to++)
*to=*from;
*to='\0';
}上面这个能正常输出:
然后我改了一下,修改部分见下面注释,其他地方没动:
程序代码:#include<stdio.h>
int main()
{
void cpoy(char *from,char *to);
char a[]="I am a teacher.",*b="You are a student.";//a[]与*b
char *a1=a;//把a的值给a1
printf("a[]=%s\n",a);
printf("b[]=%s\n",b);
cpoy(a1,b);//把a中的字符串复制到b中
printf("复制后b[]=%s\n",b);
return 0;
}
void cpoy(char *from,char *to)
{
for(;*from!='\0';from++,to++)
*to=*from;
*to='\0';
}然后运行会出错:
请问这是为什么???
[此贴子已经被作者于2018-5-5 10:28编辑过]









厉害厉害...我想了半天...又往后看了4页书...看见了这个注意事项


~
