标签:递归 reverse_string 优化 算法 字符串翻转
函数实现之前 先看一个例子
void fun(int i)
{
if (i > 0)
fun(i / 2);
printf("%d ",i);
}
int main(void)
{
fun(10);
return 0;
}
这是《c语言深度剖析》中的一个例子 在这个例子中 printf(“%d ”,i);语句是fun函数的一部分 必定执行一次fun函数,就要打印一次。函数展开过程如下:
void fun(int i)
{
//fun(i/2);
if (i > 0)
{
if (i / 2 > 0)
{
if (i / 4 > 0)
{
....
}
printf("%d ",i/4);
}
printf("%d ", i / 2);
}
printf("%d ", i );
}
同样的思路 来完成reverse_string(char *string)函数 代码如下:
/*编写一个函数reverse_string(char * string)(递归实现)*/
#include<stdio.h>
#include<math.h>
void reverse_string(char *string)
{
if (*(++string) != '\0')
reverse_string(string);
printf("%c",*(string-1));
}
int main()
{
char *a = "abcde";
reverse_string(a);
printf("\n");
return 0;
}
reverse_string(char *string)递归实现字符串翻转
标签:递归 reverse_string 优化 算法 字符串翻转
原文地址:http://blog.csdn.net/irean_lau/article/details/44220787