递归实现reverse_string(char * string)函数。
翻转 原来的字符串
是改变
不是打印出来。
/*
编写一个函数reverse_string(char * string)(递归实现)
实现:将参数字符串中的字符反向排列。
要求:不能使用C函数库中的字符串操作函数。
*/
#include <STDIO.H>
//1
void reverse_string(char * string)
{
static char a[100]={0}; // 静态变量 记录字符串
static char *p=a; //两个指针,不同地方使用
static char *q=a;
if(*string!='\0') //递归出口
{
*q=*string; //递归前使数组a 元素 初始化为目标字符串
q++;
reverse_string(string+1);//递归调用
*string=*p; //实现翻转
p++;
}
}
int main()
{
char s[]="hello world";
reverse_string(s);
printf("%s\n",s);
return 0;
}
//2.
#include <STDIO.H>
void test(char *p)
{
static char *ep=p;
char aa=*p;
if(*p!='\0')
test(p+1);
else
return ;
*ep=aa;
ep++;
}
int main()
{
char a[]="hello";
test(a);
puts(a);
return 0;
}