1. 首先我们要逆序char[]="abcdef";
让他最后输出结果位char[]="fedcba";
要完成这个任务我们之前应该学过二分查找,
利用二分查找的c=arr[left];
arr[left]=arr[right];
arr[right] = c;
这样来完成;
这样我们就确定好了递归的内容
2.
然后递归的限制条件和二分查找的条件一样都为left<=right;
这样就完成了大部分了,最后只需要在做一个打印字符串的函数即可;
函数如下:
#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
void copy(char* arr,int sz)
{ int i = 0;
for(i=0;i<=sz;i++,arr++)
{
printf("%c",*arr);
}
}
void reverse_string(char* string,int sz)
{ char c ;
int d = 0;
int b = sz -1;
if(d<=b)
{
c = *string;
*string = *(string+sz);
*(string+sz)=c;
d++;
b--;
reverse_string((string+1),(sz-2));
}
}
int main()
{
char arr[]="abcdef";
int sz = 0;
sz = sizeof(arr)/sizeof(arr[0])-1;
reverse_string(arr,sz);
copy(arr,sz);
return 0;
}