24小时热门版块排行榜    

查看: 1579  |  回复: 6

hywC

新虫 (小有名气)

[求助] 利用指针函数复制数组的C++程序纠错

#include "StdAfx.h"
#include <stdio.h>
#include <PROCESS.H>
char *ch(char *str1,char *str2);
void main()
{
       
        char str1[]="I am glad to meet you!";
        char str2[]="Welcome to study C!";
        printf("%s\n",ch(str1,str2));
}
char *ch(char *str1,char *str2)
{
       
        char *p;
        p=str2;
               
                if(*str2==NULL) exit(-1);
       
                while (*str1!=NULL)
                {
                        *str2=*str1;
                        str1++;
                        str2++;
                }
                return p;
}
为什么结果是:I am glad to meet you!am glad to meet you!。求纠错,求解释
回复此楼
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

锐利的碎片

木虫 (正式写手)

star watcher

【答案】应助回帖

感谢参与,应助指数 +1
CODE:
#include <stdio.h>

char *cp(char *str1, char *str2);

int main(int argc, char *argv[])
{
    char str1[50] = "I am glad to meet you!";
    char str2[50] = "Welcome to study C!";
    printf("%s\n", cp(str1, str2));
    return 0;
}

char *cp(char *str1, char *str2)
{
    char *ret = str2;
    while (char p = *str1++) {
        *str2++ = p;
    }
    *str2 = NULL;
    return ret;
}

改了下可以运行,你看下。
2楼2013-09-08 21:38:05
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaomm09

金虫 (小有名气)

授人以鱼,不如授人以渔,楼上的讲一讲具体怎么修改的?
追求完美!
3楼2013-09-09 00:29:59
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hywC

新虫 (小有名气)

引用回帖:
2楼: Originally posted by 锐利的碎片 at 2013-09-08 21:38:05
#include <stdio.h>

char *cp(char *str1, char *str2);

int main(int argc, char *argv[])
{
    char str1 = "I am glad to meet you!";
    char str2 = "Welcome to study C!& ...

能给我讲一下我原来的那个为什么不可用吗
4楼2013-09-09 11:18:14
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

锐利的碎片

木虫 (正式写手)

star watcher

【答案】应助回帖

★ ★ ★ ★ ★
hywC: 金币+5, ★★★★★最佳答案 2013-09-09 23:42:12
引用回帖:
4楼: Originally posted by hywC at 2013-09-09 11:18:14
能给我讲一下我原来的那个为什么不可用吗...

你原来的有几个问题:
一是字符串定义要保证str2能够装下str1,
二是没有用
*str2 = NULL;
由于c不做越界检查,字符串是以\0结尾的,printf读到末尾没看见null就会一直读到null为止。你的写法很容易越界,要养成好习惯,不然以后写C程序内存问题会很头疼。
5楼2013-09-09 13:19:28
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

xiaomm09

金虫 (小有名气)

char *ch(char *str1,char *str2);
请问这句是什么含义,第一次看到。
追求完美!
6楼2013-09-09 21:22:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hywC

新虫 (小有名气)

引用回帖:
6楼: Originally posted by xiaomm09 at 2013-09-09 21:22:19
char *ch(char *str1,char *str2);
请问这句是什么含义,第一次看到。

这是一个指针函数,也就是返回值是指针的函数,这个函数的参数也是指针。
7楼2013-09-09 23:44:32
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 hywC 的主题更新
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 投票:  有多少人是今天查系统知道结果的? +17 爱看书的可乐 2026-08-26 19/950 2026-09-02 00:19 by xiangy672
[基金申请] 面上合作单位盖章 +6 ssyjh 2026-08-27 9/450 2026-09-01 20:01 by huagongfeihu
[基金申请] 学科评审组评审是指会评吗? +4 瞬息宇宙 2026-08-31 4/200 2026-09-01 14:58 by jiaoxg
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +13 Kittylucky 2026-08-27 14/700 2026-09-01 11:06 by feng6531
[论文投稿] 小白求助 投论文要求的highlights应该如何写 5+3 l1963982152 2026-08-29 4/200 2026-09-01 09:04 by 北京莱茵编辑
[基金申请] 基金未中,这种答复是模板吗? +6 zhaosm1982 2026-08-27 7/350 2026-08-31 21:18 by qdxxmc
[基金申请] 哪位高人中了,把查询到的截图贴出来让我看看,让我长长见识 +6 yuleib84 2026-08-26 7/350 2026-08-31 19:46 by 鱼翔浅底1
[基金申请] 面上意见出来了 +12 黄鸟于飞Chao 2026-08-29 23/1150 2026-08-31 18:57 by 黄鸟于飞Chao
[基金申请] 能否申诉? +7 echo8914667 2026-08-30 8/400 2026-08-31 17:00 by yihongxu
[基金申请] 中青基了要发朋友圈吗? +7 349506619 2026-08-28 7/350 2026-08-31 13:39 by 冼亮淀粉酶
[基金申请] 29号明天会评吗 +4 笨笨唐 2026-08-28 4/200 2026-08-31 09:30 by huixian257
[考博] 找导师 +6 yuanjiabao 2026-08-29 7/350 2026-08-30 14:40 by 生科新手
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 基金系统什么内容也没有 30+4 winsaint 2026-08-27 9/450 2026-08-28 11:06 by maolC
[基金申请] 为什么 国际(地区)合作与交流项目 没有放榜? 10+3 majunge000 2026-08-26 11/550 2026-08-27 08:42 by 北京莱茵编辑
[基金申请] 出来了 +9 trojank 2026-08-26 9/450 2026-08-26 14:25 by 宝贝虫子
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 国际合作可查了,中了面上 (EPI+1)(金币+50) +18 Ldrop2023 2026-08-26 18/900 2026-08-26 11:15 by cmrandy
[基金申请] 系统进不去 +4 yanglien 2026-08-26 5/250 2026-08-26 11:10 by wenfengw83
[基金申请] 项目信息和经费信息在系统里都可以看到了 +6 wittyboy 2026-08-26 14/700 2026-08-26 10:55 by wittyboy
信息提示
请填处理意见