| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1235 人关注过本帖
标题:求助:用指针复制字符串
只看楼主 加入收藏
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: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10609
专家分:43210
注 册: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
快速回复:求助:用指针复制字符串
数据加载中...
 
   



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

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