翻转字符串
使用递归:方法很巧妙!
#include <stdio.h> /* 使用递归来翻转字符串 */ void reverseSentence() { char c; scanf("%c", &c); if( c != '\n') // 按下的不是回车键 { /* 不会马上输出,必须等下一个 reverseSentence 函数执行完之后才打印, 相当于缓冲起来,最后再一次性释放,比如,输入:nma, 执行的顺序是:reverseSentence1()--缓冲打印n--reverseSentence2()--缓冲打印m --reverseSentence3()--缓冲打印a--reverseSentence4()--按回车键,不满足if条件, 下面没代码了,reverseSentence4()函数执行完,会逆向执行缓冲,即:打印a--打印m --打印n,最后打印出来就是:amn */ reverseSentence(); // 递归调用 printf("%c",c); } } int main(void) { printf("输入一个字符串: "); reverseSentence(); return 0; }
运行: