eg:char arr[]="abcdefg"; 里面实际上是 a b c d e f g \0
第一步: 1.交换 a g
2.逆序 b c d e f
3.g的位置放上\0
第二步: 1.交换 b f
2.逆序 c d e
3.f的位置放上\0
第三步: 1.交换 c e
2.......
#define _CRT_SECURE_NO_WARNINGS
#include <stdio.h>
#include <string.h>
void reverse(char* str) {
char tmp = *str;
int len = strlen(str);
*str = *(str + len - 1);
*(str + len - 1) = '\0';
if (strlen(str+1)>=2) reverse(str + 1);
*(str + len - 1) = tmp;
}
int main()
{
char arr[] = "abcdefg";
reverse(arr);
printf("%s", arr);
return 0;
}