搜索
首页 电脑/网络 程序设计 C/C++

C++编程问题

编写函数reverse(char *s),用递归算法使字符串s倒序.

全部回答

2006-12-17

0 0
    这是一个很有趣的问题,具体的实现方法取决于你题目的要求 1。 如果只是要求逆序输出,那么可以采用类似的方法: void reverse(char *s) { if(*s=='\0') return; reverse(s+1); printf("%c",*s); } 这种方法在s很长的情况下会一直递归到底,不是很好。
     2。
     如果需要将字符串整个逆序在函数外面输出,那么可能希望采用返回字符串指针的方式;实现如下: char * reverse( char* s ) { static char *p = s+strlen(s)-1; //p是一个静态变量,指向当前递归层处理的字符串尾,而s指向字符串头 if(s 1 ) { char c = s[n-1]; s[n-1] = s[0]; s[0] = c; reversehelp( s+1, n-2 ); } } 然后在调用时如下: char *reverse(char *s) { reversehelp( s, strlen(s) ); return s; } 。

2006-12-18

222 0
    #include #include #define max 100 char *sreverse(char *s,int sta,int end) { char c,e; int n=end; if(end>sta) { c=s[sta]; e=s[end]; s[sta]=e; s[end]=c; sta++; end--; sreverse(s,sta,end); } return s; } void main() { char a[max]; char *p; cout>a; cout<<"逆序前为:"<<a<<endl; p=sreverse(a,0,strlen(a)-1); cout <<"逆序后为:"<<p<<endl; } 。
    。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
C/C++
硬件
电脑装机
程序设计
互联网
操作系统/系统故障
笔记本电脑
反病毒
百度
软件
程序设计
C/C++
VB
数据库
汇编语言
JAVA相关
VC++
C#/.NET
其他编程语言
C/C++
C/C++
举报
举报原因(必选):
取消确定举报