| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1012 人关注过本帖
标题:指针函数传递,不明白哪儿错了,大虾来帮忙看看
只看楼主 加入收藏
杨帽帽
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2011-4-23
结帖率:66.67%
收藏
已结贴  问题点数:20 回复次数:14 
指针函数传递,不明白哪儿错了,大虾来帮忙看看

#include <stdio.h>


copystr(char *from,char *to)
{   int i;                    //此函数用意为将from复制到to,然后将to一一字符输出
     for(i=0;*(from+i)!='\0';i++)
         *(to+i)=*(from+i);
     *(to+i)='\0';
for(i=0;*(to+i)!='\0';i++)
        printf("%c",*(to+i));


}


main()               //使用指针复制字符串
{
    char *a="I am a boy.",*b="you are a bitch.";
    int i;
    copystr(a,b);
   

   
}


无法运行,为何啊?
搜索更多相关主题的帖子: 字符串 bitch 
2011-05-03 21:34
khaz
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:130
专家分:188
注 册:2011-4-21
收藏
得分:3 
*(to+i)=*(from+i);
这里有问题
2011-05-03 21:49
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:3 
串复制这样就可以啦。 除非你有特别要求
程序代码:
void strCopy (char *to,char *from) {
    while(*from) 
        *to++ = *from++;
    *to='\0';
}


[ 本帖最后由 ansic 于 2011-5-3 21:56 编辑 ]

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-03 21:53
懂也不懂
Rank: 4
等 级:业余侠客
威 望:2
帖 子:73
专家分:224
注 册:2010-12-1
收藏
得分:10 
首先想说你的copystr要有返回类型,void就行,其次如果你加了void,其他程序不变,那么按程序意思将把b改为“I am a boy”,如果你将复制函数中*(to+i)='/0'去掉是什么返回结果,还有直接将a连接到b的末尾等算法你自己运行看看,如果不懂,可以问我。。。
2011-05-03 22:03
杨帽帽
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2011-4-23
收藏
得分:0 
回复 3楼 ansic

#include <stdio.h>


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

main()
{
    char *a="sdihf sf";
    char *b="odjanwe ksef";

    copy(a,b);
    printf("\n%s\n",b);
}


这个是几乎照搬书上的,也运行不出来。怎么回事?

还有2楼那位兄弟,*(to+i)=*(from+i)这样赋值有什么错?
2011-05-03 22:16
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:0 
书里怎么写的?

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-05-03 22:22
misswe
Rank: 2
等 级:论坛游民
帖 子:17
专家分:15
注 册:2011-4-30
收藏
得分:2 
printf("\n%s\n",b);

这里是不是应该输出a啊!!
2011-05-03 22:25
杨帽帽
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2011-4-23
收藏
得分:0 
回复 4楼 懂也不懂
我的意思就是复制字符串,但是都用指针,怎么就

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


main()
{
     char *a="sdj sdlfjeoirjg";
     char *b="lajgo sdlwi ";
   
    copy(a,b);

    for(;*b!=0;b++)
        printf("%c",*b);
}

这是我写的一个算法,我知道这个有问题,就是经过copy函数调用后,b所指的位置其实是指在“sdj sdlfjeoirjg\0”的最后一位\0上面是吧?但是这个问题如何解决呢
2011-05-03 22:27
杨帽帽
Rank: 1
等 级:新手上路
帖 子:22
专家分:0
注 册:2011-4-23
收藏
得分:0 
回复 7楼 misswe
输出a我还复制个啥,我就是要将a复制给b,然后看输出的b是不是等于a
2011-05-03 22:28
懂也不懂
Rank: 4
等 级:业余侠客
威 望:2
帖 子:73
专家分:224
注 册:2010-12-1
收藏
得分:0 
#include <stdio.h>

void copystr(char *from,char *to)
{   
     int i;  
    //此函数用意为将from复制到to,然后将to一一字符输出
      
     for(i=0;*(from+i)!='\0';i++)
          *(to+i)=*(from+i);
     
     *(to+i)='\0';
    for(i=0;*(to+i)!='\0';i++)
        printf("%c",*(to+i));


}


main()               //使用指针复制字符串
{
    char *a="I am a boy.",*b="you are a bitch.";
    copystr(a,b);
 }
2011-05-03 22:53
快速回复:指针函数传递,不明白哪儿错了,大虾来帮忙看看
数据加载中...
 
   



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

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