标题:求助:用指针复制字符串
取消只看楼主
anduoba
Rank: 2
等 级:论坛游民
帖 子:36
专家分:44
注 册:2018-4-27
结帖率:100%
已结贴  问题点数:20 回复次数:3 
求助:用指针复制字符串
程序代码:
#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
anduoba
Rank: 2
等 级:论坛游民
帖 子:36
专家分:44
注 册:2018-4-27
得分:0 
回复 2楼 吹水佬
呃...什么意思...
2018-05-05 11:06
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



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




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

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