#include<stdio.h>
#include<string.h>

void reverse_str(char *str)
{
    int len = 0;
    char temp;
 
    len = strlen(str);
    temp = str[0];
    str[0] = str[len-1];  
    str[len-1] = '\0';    //必须要保证str+1还是一个字符串    

    if(*(str+1) != '\0')  //递归必须要有跳出条件
    reverse_str(str+1);
     str[len-1] = temp;  //递归会保存现场
}
int main()
{
    char p[] = "happy";
    reverse_str(p);
    printf("%s\n",p);
    return 0;

}