/*
编写一个函数reverse_string(char * string)递归实现;;
实现:将参数字符串中的字符反向排列;
要求:不能使用c函数库中的字符串操作函数;
*/
#include <stdio.h>
#include <string.h>
char* reverse_string(char * str)
{
char ch;
int len = strlen(str);
char* p = str + len -1;
if (len>=2) //len等于2的时候最后一次交换;;;
{
//len = strlen(str);
ch = *str; //首元素赋给中间变量;;
*str = *p; //最后一个元素赋给首元素;;;
*p = '\0'; //加'\0'的作用是在下一次递归调用时使len发生变化;;作为if条件是否进行的条件;;
reverse_string(str+1);// 递归...
*p = ch; //递归完成后将ch中的值出栈;;后进后出;;
}
return str; //返回改变顺序后的字符串指针地址
}
int main()
{
char p[] = "abcdefgh";
printf("%s\n",reverse_string(p));
return 0;
}
递归实现字符串反向
最新推荐文章于 2022-07-10 14:54:07 发布