标题:求助:用指针复制字符串
只看楼主
anduoba
Rank: 2
等 级:论坛游民
帖 子:36
专家分:44
注 册:2018-4-27
结帖率:100%
已结贴  问题点数:20 回复次数:7 
求助:用指针复制字符串
程序代码:
#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编辑过]

搜索更多相关主题的帖子: 复制 字符串 char from printf 
2018-05-05 10:27
吹水佬
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:432
帖 子:10064
专家分:41463
注 册:2014-5-20
得分:8 
char *b="You are a student.";
b只读?
2018-05-05 11:00
anduoba
Rank: 2
等 级:论坛游民
帖 子:36
专家分:44
注 册:2018-4-27
得分:0 
回复 2楼 吹水佬
呃...什么意思...
2018-05-05 11:06
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
得分:12 
看错了,静态数组不可改变.

[此贴子已经被作者于2018-5-5 11:47编辑过]

2018-05-05 11:43
童生
Rank: 6Rank: 6
等 级:侠之大者
威 望:8
帖 子:205
专家分:455
注 册:2018-3-7
得分:0 
char *b="You are a student.";  这个字符串是分配在静态内存,不可改变
2018-05-05 11:50
anduoba
Rank: 2
等 级:论坛游民
帖 子:36
专家分:44
注 册:2018-4-27
得分:0 
回复 5楼 童生
厉害厉害...我想了半天...又往后看了4页书...看见了这个注意事项  
2018-05-05 12:02
anduoba
Rank: 2
等 级:论坛游民
帖 子:36
专家分:44
注 册:2018-4-27
得分:0 
回复 2楼 吹水佬
我懂了,大神你这说法太高端了...我缓了好久...
2018-05-05 12:03
九转星河
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:长长久久
等 级:贵宾
威 望:52
帖 子:5023
专家分:14003
注 册:2016-10-22
得分:0 
其实正常来说通常会用const char* p="hello world";这样就可以知道p指向的内容是可读不可改了~

[code]/*~个性签名:bug是什么意思?bug是看上去没有可能的东西实际上是有可能做到的 就是这样~2018-08-08更~*/[/code]
2018-05-05 23:05



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-486643-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021049 second(s), 9 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved