24小时热门版块排行榜    

查看: 1570  |  回复: 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

【答案】应助回帖

★ ★ ★ ★ ★
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的回帖
查看全部 7 个回答

锐利的碎片

木虫 (正式写手)

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的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[基金申请] 国自然面上复盘~欢迎讨论 (金币+15) +13 晴天加油 2026-08-26 14/700 2026-08-28 18:36 by huagongfeihu
[基金申请] 系统查不到 +11 董八千 2026-08-26 11/550 2026-08-28 18:06 by Leogzhya
[基金申请] 为什么资助数各大高校都创新高,自己申请怎么就这么难 +11 Kittylucky 2026-08-27 12/600 2026-08-28 16:26 by lyxiaomc
[教师之家] 导师吐槽:我怎么摊上了这么个极品研究生! +8 苏东坡二世 2026-08-23 8/400 2026-08-28 14:41 by lkforward
[基金申请] 基金不中,共勉 +11 eulota 2026-08-26 11/550 2026-08-28 14:22 by 火星超人xi
[基金申请] 麻烦专家们看看评委们的意见(F口面上) +4 gdd2018 2026-08-28 9/450 2026-08-28 14:22 by jklily
[基金申请] 2026年叶企孙基金 +3 bud_bud 2026-08-27 6/300 2026-08-28 11:53 by bud_bud
[基金申请] 怎么查啊 +6 huang1991js 2026-08-26 6/300 2026-08-28 08:42 by winsaint
[基金申请] 申请删除本帖 +6 lyz123lyz 2026-08-27 7/350 2026-08-27 17:31 by 宁静致远sy
[基金申请] 看板上这么多中的,有点像50人群里49个人都是骗子的那种感觉…… +5 a089 2026-08-26 6/300 2026-08-27 14:05 by jonewore
[基金申请] 怎么看青基中了没有啊 +5 叶九微 2026-08-26 5/250 2026-08-27 10:35 by l_zh2008
[文学芳草园] 梦想 +3 myrtle 2026-08-26 3/150 2026-08-27 10:01 by angelyueyi
[基金申请] 范进中举一文的中心思想 +9 炎黄贵胄 2026-08-22 10/500 2026-08-26 15:40 by semaglutide
[基金申请] 为什么国自然不能直接公布 +4 bjdxyxy 2026-08-26 4/200 2026-08-26 13:12 by qingmu1201
[基金申请] 国合里面能看到了 +7 一怀馨秋 2026-08-26 7/350 2026-08-26 11:23 by zhaosm1982
[基金申请] 今天务委会开完了,明天出结果吗 +19 angus9576 2026-08-25 23/1150 2026-08-26 10:03 by zp519
[基金申请] 牛来!米来!面来! +8 beefly 2026-08-26 8/400 2026-08-26 08:37 by xuzhipiao
[基金申请] 在坚冰还盖着北海的时候,我看到了怒放的梅花。 (金币+10) +6 ziyangfang 2026-08-25 9/450 2026-08-25 20:26 by huagongfeihu
[基金申请] 没有任何消息-是不是就凉了 +9 图啦图啦 2026-08-24 10/500 2026-08-25 11:59 by 南海小哥
[教师之家] 跳槽后在研项目怎么办? +5 简单化xn 2026-08-22 10/500 2026-08-23 12:38 by 简单化xn
信息提示
请填处理意见