| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 526 人关注过本帖
标题:大家帮忙看看问题出在哪,谢谢
只看楼主 加入收藏
sovar
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-11-18
收藏
 问题点数:0 回复次数:5 
大家帮忙看看问题出在哪,谢谢
#include<iostream.h>
//#include<string.h>

char *merry(char *str)    //字符倒置函数
{
    char *add;
    char *end;
    if(str==NULL)         //如字符串为空返回
        return 0;

    add=str;

    while(*str!='\0')
        str++;
    
    end=str;

    while(add!=end)      //交换字符串内容
    {
        char temp;
        temp=*add;
        *add=*end;
        *end=temp;

        add++;
        end--;
    }

  while(*str!='\0')
    return add;

}


void main()
{
    char s[6]="hello";

    char *a;

    a=merry(s);
      cout<<a<<endl;
}
搜索更多相关主题的帖子: include return 字符串 hello 
2008-11-18 22:43
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
end=str;  -> end=str-1;           你那是指向了'\n';
 while(*str!='\0')
    return add;
这里是什么意思?应该在进入函数时保存str的值,只有这时是指向起始位置的。返回这个值。

还有你的程序有个隐含的错误,就是处理的字符串只能是基数,偶数的话会内存错误。
原因是偶数时,这个判断不会为真add!=end

Fight  to win  or  die...
2008-11-18 22:59
sovar
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-11-18
收藏
得分:0 
谢谢楼上的了
2008-11-18 23:21
sovar
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-11-18
收藏
得分:0 
还有你的程序有个隐含的错误,就是处理的字符串只能是基数,偶数的话会内存错误。
原因是偶数时,这个判断不会为真add!=end


这个问题怎么解决? 我想想了要
2008-11-18 23:26
sovar
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2008-11-18
收藏
得分:0 
#include<iostream.h>
//#include<string.h>

char *merry(char *str)    //字符倒置函数
{
    char *add;
    char *add1;
    char *end;
    int n=0;
    
    if(str==NULL)         //如字符串为空返回
        return 0;
    add=str;
    add1=str;

    while(*str!='\0')
    {
        str++;
        n++;
    }
    
    end=str-1;

    for(int i=0;i<n/2;i++)     //交换字符串内容
    {
        char temp;
        temp=*add;
        *add=*end;
        *end=temp;

        add++;
        end--;
    }

 
    return add1;

}


void main()
{
    char s[7]="hello0";

    char *a;

    a=merry(s);
      cout<<a<<endl;
}

改好了,谢谢   aipb2007  了
2008-11-18 23:41
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
收藏
得分:0 
不用谢,程序写法还可以更简洁,另外注意命名

Fight  to win  or  die...
2008-11-19 00:36
快速回复:大家帮忙看看问题出在哪,谢谢
数据加载中...
 
   



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

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