| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1011 人关注过本帖
标题:字符串反序输出,不知道哪出错了,帮忙看看了喂..
只看楼主 加入收藏
成成成
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-8-1
结帖率:66.67%
收藏
已结贴  问题点数:18 回复次数:4 
字符串反序输出,不知道哪出错了,帮忙看看了喂..
#include<stdio.h>
char *reverse(char *);
int main()
{
    char a[81];
    do{
        puts("输入字符串");
        gets(a);
        puts("反向输出");
        puts(reverse(a));

        puts("结束按q");
        gets(a);
        printf("\n");
    }while(*a!='q');

    puts("Quit");
    return 0;
}

char *reverse(char *b)
{
    int i,j;
    char q[81];
    for(i=0;*(b+i);i++)
        continue;
    for(j=0;i>0;j++,i--)
    {
        q[j]=*(b+i-1);
    }   
    *(q+j)='\0';
    return q;
}
2016-12-24 06:54
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:9 
子函数中申请的内存不能被返回

DO IT YOURSELF !
2016-12-24 07:14
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10608
专家分:43190
注 册:2014-5-20
收藏
得分:9 
char q[81]会在调用reverse返回时被释放。
可改q[81]为reverse的i/o参数:
#include<stdio.h>
char *reverse(char *, char *);
int main()
{
    char a[81], q[81];
    do{
        puts("输入字符串");
        gets(a);
        puts("反向输出");
        puts(reverse(a, q));
        puts("结束按q");
        gets(a);
        printf("\n");
    }while(*a!='q');

    puts("Quit");
    return 0;
}

char *reverse(char *b, char *q)
{
    int i,j;
    for(i=0;*(b+i);i++)
        continue;
    for(j=0;i>0;j++,i--)
    {
        q[j]=*(b+i-1);
    }   
    *(q+j)='\0';
    return q;
}
2016-12-24 07:14
成成成
Rank: 1
等 级:新手上路
帖 子:26
专家分:0
注 册:2016-8-1
收藏
得分:0 
哦~~懂了。
谢谢了
2016-12-24 07:36
wp231957
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:神界
等 级:贵宾
威 望:423
帖 子:13688
专家分:53332
注 册:2012-10-18
收藏
得分:0 
如果只是反向输出  这样可行???
程序代码:
#include <stdio.h>

void reverse(char* s)
{
    if(*s=='\0') return;
    reverse(++s);
    printf("%c",*(--s));
}

int main(int argc, char* argv[])
{
    reverse("abcdefg");
    return 0;
}



DO IT YOURSELF !
2016-12-24 09:01
快速回复:字符串反序输出,不知道哪出错了,帮忙看看了喂..
数据加载中...
 
   



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

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