您的位置:首页 > 职场人生

逆序打印字符串(面试题)

2011-08-02 19:49 218 查看
用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);}//保证字符串里有一个字符,然后递归(关键之处)

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: