将a字符串复制到b上这个代码哪里有问题?

为什么调用函数以后不能输出了?


#include
int main()
{
    void copy_string(char *from,char *to);
    char *a="I am a student.";
    char *b="You are a teacher.";
    printf("string a is:%s\n",a);
    printf("string b is:%s\n",b);
    copy_string(a,b);
    printf("After copying:\n");
    printf("string a is:%s\n",a);
    printf("string b is:%s\n",b);
    return 0;
    
}
void copy_string(char *from,char *to)
{
    while(*from!='\0')
    {
        *to=*from;
        from++;
        to++;
    }
    *to='\0';
    
}

这种char *定义字符串的方式是只读的,也就是说你的字符串是个常量,无法改变。用char数组。
有帮助的话采纳一下哦!

char b[] = "You are a teacher.";
如果a比b字符多的话,要给b足够的内存空间,要用char b[100]="xxx";

不知道你这个问题是否已经解决, 如果还没有解决的话:

如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^