| 网站首页 | 业界新闻 | 小组 | 交易 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
共有 473 人关注过本帖
标题:copy_string函数没执行 怎么回事 有大佬吗
只看楼主 加入收藏
domore
Rank: 1
等 级:新手上路
帖 子:26
专家分: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
来 自:广州
等 级:贵宾
威 望:21
帖 子:204
专家分:1334
注 册: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';
}

收到的鲜花
  • domore2019-07-27 06:44 送鲜花  1朵  

不经历千百遍的调试,怎能体会成功时那一刹那的喜悦。
2019-07-25 09:08
wufuzhang
Rank: 9Rank: 9Rank: 9
来 自:广州
等 级:贵宾
威 望:21
帖 子:204
专家分:1334
注 册: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
等 级:新手上路
帖 子:26
专家分:0
注 册:2019-7-25
收藏
得分:0 
回复 3楼 wufuzhang
谢了兄弟
2019-07-27 06:43
Mr_doge
Rank: 5Rank: 5
等 级:贵宾
威 望:10
帖 子:159
专家分:385
注 册:2018-6-28
收藏
得分:0 
修改字符串常量属于未定义行为,不要对编译器警告视而不见
2019-07-27 15:35
快速回复:copy_string函数没执行 怎么回事 有大佬吗
数据加载中...
 
   



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

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