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

用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);}//保证字符串里有一个字符,然后递归(关键之处)
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值