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

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

}

    原文作者:adengou
    原文地址: https://blog.csdn.net/adengou/article/details/6654929
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞