用C语言写的,主要算法:递归法
/**************************/
/*逆序打印字符串(面试题)
C++写一个函数 Reverse(char *s)
要求调用此函数以后实现 逆序输出
如: s=”this is a sentense”
调用完函数以后 变为 “sentense a is this”
by adengou
2007.7.27
在WIN7用DEV C++ 5.0 通过,用VS 2010 通过
*/
#include <stdio.h>
#include <string.h>
void Reverse(char *s,int sLen);
void main(void)
{
char s[]=”this is a sentense”;
int sLen=strlen(s);//计算字符串长度
Reverse(s,sLen);
getchar();
}
void Reverse(char *s,int sLen)
{
char *p, x=’ ‘;
int j, L=0;
p=s+sLen-1;//sLen-1去掉尾’\n’
while(*p!=x&&p!=s){L++;p–;}// p!=s 即*P不能指向s[0]
for(j=0;j<=L;j++){putchar(*(p+j));}
putchar(x);
sLen-=L;
if(sLen>=2){ Reverse(s,sLen-1);}//保证字符串里有一个字符,然后递归(关键之处)
}