求助:用指针复制字符串
程序代码:
#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编辑过]