遞歸實現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;
}