| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
Reworld,下班在家制作游戏,1500万奖金等你拿以码会友 以友辅仁
共有 241 人关注过本帖
标题:copy_string函数没执行 怎么回事 有大佬吗
只看楼主 加入收藏
domore
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2019-7-25
结帖率:60%
  问题点数:0  回复次数:4   
copy_string函数没执行 怎么回事 有大佬吗
#include<stdio.h>
int main()
    {
    void copy_string(char *from,char *to);
    char *a="i am a student";
    char *b="you are a student";
    printf("string a:%s\nstring b:%s\n",a,b);
    printf("\ncopy string a to b:\n");
    copy_string(a,b);
    printf("string a:%s\nstring b:%s\n",a,b);
    return 0;
}


void copy_string(char *from,char *to)
    {
    while(*from!='\0')
        {
        *to=*from;
        from++;
        to++;
        }
    *to='\0';
    }
附件: 您没有浏览附件的权限,请 登录注册
搜索更多相关主题的帖子: 执行 string char from printf 
2019-07-25 04:38
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:20
帖 子:198
专家分:1303
注 册:2017-8-9
  得分:0 
回复 楼主 domore
编译的时候是有警告的,你视而不见。

问题根源:执行copy_string完函数后,指针a和b都改变了,
不再指向字符串的首地址,当然无输出。
我将你的代码改进了一下就可以了

程序代码:
#include<stdio.h>
int main()
{
    void copy_string(char *from, char *to);
    char a[20] = "i am a student";
    char b[30] = "you are a student";
    char *pa = a;
    char *pb = b;
    printf("string a:%s\nstring b:%s\n", a, b);
    printf("\ncopy string a to b:\n");
    copy_string(pa, pb);
    printf("string a:%s\nstring b:%s\n", a, b);
    return 0;
}

void copy_string(char *from, char *to)
{
    while(*from!='\0')
   {
        *to=*from;
        from++;
        to++;
   }
    *to='\0';
}

收到的鲜花
  • domore 于 2019-07-27 06:44 送鲜花  1朵  

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-07-25 09:08
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:20
帖 子:198
专家分:1303
注 册:2017-8-9
  得分:0 
回复 楼主 domore
代码可以精简:



程序代码:
#include <stdio.h>

int main(void)
{
    char a[20] = "i am a student";
    char b[30] = "you are a student" ;
    char *pa = a;
    char *pb = b;
    while (*pb++ = *pa++);
    pa = a; pb = b;
    printf("a:%s\nb:%s\n", pa, pb);
    return 0;
}

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-07-25 09:17
domore
Rank: 1
等 级:新手上路
帖 子:25
专家分:0
注 册:2019-7-25
  得分:0 
回复 3楼 wufuzhang
谢了兄弟
2019-07-27 06:43
Mr_doge
Rank: 5Rank: 5
等 级:职业侠客
威 望:9
帖 子:153
专家分:368
注 册:2018-6-28
  得分:0 
修改字符串常量属于未定义行为,不要对编译器警告视而不见
2019-07-27 15:35
快速回复:copy_string函数没执行 怎么回事 有大佬吗
数据加载中...
 
   





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

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