| 编程中国 | 业界新闻 | 技术文章 | 视频教程 | 下载频道 | 程序源码 | 个人空间 | 编程论坛
全能ASP/PHP/ASP.NET主机,支持月付专业 MSSQL 数据库空间,支持月付专业 MySQL 数据库空间,支持月付买域名,送MP3、MP4
高端软件开发 = 年薪十万不是梦赛孚耐:软件保护加密专家身份认证令牌USB KEY买空间,免费送域名(厦门中资源)
共有 1121 人关注过本帖
标题:怎样用递归法使字符串倒序
收藏  订阅  推荐  打印 
柳丝飘絮
Rank: 1
等级:新手上路
帖子:4
积分:142
注册:2008-4-7
怎样用递归法使字符串倒序

各位高手:怎样用递归法使字符串倒序?
搜索更多相关主题的帖子: 递归  倒序  字符  
2008-4-8 22:45
zjl138
Rank: 4
等级:高级会员
威望:1
帖子:773
积分:9162
注册:2007-11-12

字符串倒序干吗要用递归呢?
今晚没时间讨论了,学校要关灯了,明天再来看,呵呵。。

i like linux...
2008-4-8 22:56
sunkaidong
Rank: 12Rank: 12Rank: 12
来自:南京师范大学
等级:版主
威望:4
帖子:4131
积分:44905
注册:2006-12-28

#include<iostream.h>
#include<stdio.h>
void reverse(char *a,int i,int n)
{
  if(i==n)
      cout<<a[i]<<"\t";
  else
      reverse( a, i+1, n);
      cout<<a[i-1]<<"\t";
}
int main()
{   int n;
    cout<<"请输入字符数组长度!"<<endl;
    cin>>n;
    char *p=new char[n];
    gets(p);
    reverse(p,1,n-1);
    cout<<endl;
    
}

学习需要安静。。海盗要重新来过。。
2008-4-8 23:21
wxwy3glp
Rank: 1
等级:新手上路
帖子:3
积分:132
注册:2008-4-15

#include <stdio.h>
#include <string.h>
void reverse(char *s, int i, int n)
{
    if(i == n)printf("%c", s[i]);
    else
    {
        reverse(s, i+1, n);
        printf("%c", s[i]);
    }
}
int main()
{
    char s[100];
    scanf("%s", s);
    reverse(s, 0, strlen(s)-1);
    return 0;    
}
2008-4-15 11:10
wxwy3glp
Rank: 1
等级:新手上路
帖子:3
积分:132
注册:2008-4-15
e

3楼的有点问题
2008-4-15 11:10
sunkaidong
Rank: 12Rank: 12Rank: 12
来自:南京师范大学
等级:版主
威望:4
帖子:4131
积分:44905
注册:2006-12-28

我的有什么问题?说来听听..

学习需要安静。。海盗要重新来过。。
2008-4-15 12:09
tymstill
Rank: 1
等级:新手上路
帖子:26
积分:460
注册:2008-1-28

是有问题啊,运行一下看看
2008-4-15 15:02
sunkaidong
Rank: 12Rank: 12Rank: 12
来自:南京师范大学
等级:版主
威望:4
帖子:4131
积分:44905
注册:2006-12-28

我用动态数组节约空间,所以必须输入字符长度。这不是什么问题。。。

学习需要安静。。海盗要重新来过。。
2008-4-15 15:38
野比
Rank: 12Rank: 12Rank: 12
等级:贵宾
威望:14
帖子:990
积分:10576
注册:2007-5-24

可以for一下取个长度嘛   不然就是“有问题”了
2008-4-17 19:17
flylee
Rank: 3Rank: 3
等级:中级会员
帖子:198
积分:2090
注册:2004-8-10


程序代码:
#include <iostream>
using namespace std;

void reverse(string &s, int a, int b)
{
    if(a<b)
    {
        swap(s[a],s[b]);
        reverse(s,a+1,b-1);
    }
}

int main()
{
    string s;
    cin>>s;
    cout<<"Before reverse:\n"<<s<<endl;
    reverse(s, 0, s.length()-1);
    cout<<"After reverse:\n"<<s<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}
用GCC调过,VC没试过,可能会有问题
2008-4-18 00:12
关于我们 | 广告合作 | 编程中国 | 清除Cookies | Archiver | WAP | TOP

编程中国 版权所有,并保留所有权利。鲁ICP备08000592号
Powered by Discuz, Processed in 0.052312 second(s), 9 queries.
Copyright©2004-2008, BCCN.NET, All Rights Reserved