| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1459 人关注过本帖
标题:把字符串中的内容逆置。以下程序不对,没达到效果,没找到问题所在,希望大 ...
只看楼主 加入收藏
淡水鱼·到海
Rank: 2
等 级:论坛游民
帖 子:30
专家分:26
注 册:2013-9-12
结帖率:75%
收藏
已结贴  问题点数:20 回复次数:11 
把字符串中的内容逆置。以下程序不对,没达到效果,没找到问题所在,希望大家帮帮忙,谢谢!
把字符串中的内容逆置例如,字符串中原有的字符串为"abcdefg",则调用该函数后,串中的内容为"gfedcb。
以下程序不对,没达到效果,没找到问题所在,希望大家帮帮忙,谢谢!我的思路是先把形参s赋给b,再把b的位置移到最后一位,在从最后一位一次赋给s

void fun(char *s)
{int i,n=0;
char *b;
b=s;
while(*b)
{b++;n++;}
b--;
for(i=0;i<n;i++)
{*s=*b;s++;b--;}
*s='\0';
}
main()
{
char s[10];
gets(s);
printf("%s",s);getch();   
}

[ 本帖最后由 淡水鱼·到海 于 2014-9-20 23:15 编辑 ]
搜索更多相关主题的帖子: 字符串 abcdefg 
2014-09-20 19:45
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:7 
void reverse(char *s)
{
    char *t = s;
    char temp;

    while (*s)
        s++;
    --s;
    if (*s == '\n')
        --s;
    while (t < s) {
        temp = *t;
        *t++ = *s;
        *s-- = temp;
    }
}

梦想拥有一台龙芯3A-4000
2014-09-20 20:07
随风而行lulu
Rank: 2
等 级:论坛游民
帖 子:59
专家分:60
注 册:2014-9-6
收藏
得分:7 
以下是引用ditg在2014-9-20 20:07:10的发言:

void reverse(char *s)
{
    char *t = s;
    char temp;

    while (*s)
        s++;
    --s;
    if (*s == '\n')
        --s;
    while (t < s) {
        temp = *t;
        *t++ = *s;
        *s-- = temp;
    }
}


太帅了。把\n和\0的情况都考虑进去了。
不知道为什么我不习惯用指针,能不用就不用。刚刚看完一本书

void strfxu(char *s)
{
    int i, len;
    char temp;
    len=strlen(s);
    for(i=0; i<len/2; i++)
    {
        temp=s[i]; s[i]=s[len-1-i]; s[len-1-i]=temp;
    }
}
我以前是这样写的,没考虑过有\n的情况
2014-09-20 22:19
淡水鱼·到海
Rank: 2
等 级:论坛游民
帖 子:30
专家分:26
注 册:2013-9-12
收藏
得分:0 
回复 2 楼 ditg
我想知道我写那个错在哪儿
2014-09-20 23:10
ditg
Rank: 10Rank: 10Rank: 10
等 级:贵宾
威 望:16
帖 子:852
专家分:1937
注 册:2014-4-10
收藏
得分:0 
*s=*b;

主要就是赋值操作的问题,呵呵

梦想拥有一台龙芯3A-4000
2014-09-20 23:50
淡水鱼·到海
Rank: 2
等 级:论坛游民
帖 子:30
专家分:26
注 册:2013-9-12
收藏
得分:0 
回复 5 楼 ditg
*s=*b;s++;b--;依次赋值了啊.。还是没懂
2014-09-21 07:27
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:7 
再好好想想
2014-09-21 07:27
淡水鱼·到海
Rank: 2
等 级:论坛游民
帖 子:30
专家分:26
注 册:2013-9-12
收藏
得分:0 
回复 7 楼 tlliqi
哎我也想再好好想,可是马上就要去考试了,好紧张啊!
2014-09-21 07:50
淡水鱼·到海
Rank: 2
等 级:论坛游民
帖 子:30
专家分:26
注 册:2013-9-12
收藏
得分:0 
回复 7 楼 tlliqi

是不是因为*s=*b后,b的第一位也随之变了
2014-09-21 08:10
淡水鱼·到海
Rank: 2
等 级:论坛游民
帖 子:30
专家分:26
注 册:2013-9-12
收藏
得分:0 
回复 5 楼 ditg
谢啦^_^
2014-09-21 08:13
快速回复:把字符串中的内容逆置。以下程序不对,没达到效果,没找到问题所在,希 ...
数据加载中...
 
   



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

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