思路分析:
用到递归首先第一步想出递归的跳出条件,这个问题中的跳出条件是字符串遇到末尾的’\0’
其次就是把首元素依次保存,按后入先出的原则最后归位
反思:
函数命名太随便,不规范
代码示例:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
void fanxiangpailie(char * string)
{
char tmp;
int mowei = strlen(string)-1;//末尾元素下标是长度减一
//首先确定跳出条件,string[0]=="\0"
if (string[0] == '\0')//判断是不是\0
{
return;
}
tmp= string[0];//把首元素存起来
string[0] = string[mowei];//把末尾的元素放在第一位
string[mowei] = '\0';//给末尾补上\0,确保每次都找到尾部
fanxiangpailie(string + 1);//光标下移一位
string[mowei] = tmp;//把存好的开头,后入先出的原则归位
}
int main()
{
char str[]= "wozuixihuanlubaobao";
fanxiangpailie(str);
puts(str);
system("pause");
return 0;
}