#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int inverse(char* str){
char* p1 = str;
char* p2 = p1+strlen(str)-1;
char tmp;
while(p2>p1){
tmp = *p1;
*p1 = *p2;
*p2 = tmp;
p1++;
p2--;
}
return 0;
}
int inverse01(char* str){
if(str==NULL)
{
printf("inverse01()函数出错!空指针!请分配内存!\n");
return -1;
}
if(*str=='\0')//递归结束条件
return 0;
inverse01(str+1);
printf("%c",*str);
return 0;
}
int inverse02(char* pIn,char* pOut){
if(pIn==NULL||pOut==NULL){
printf("inverse02()函数出错!空指针!请分配内存!\n");
return -1;
}
if(*pIn==NULL)//递归结束条件
return 0;
inverse02(pIn+1,pOut);
strncat(pOut,pIn,1);
//strcat(pOut,pIn);
return 0;
}
void main() {
char str[]="1234567";
//inverse(str);
//puts(str);
//inverse01(str);
char str_ver[64]={0};//主调函数要分配内存
inverse02(str,str_ver);
puts(str_ver);
system("pause");
}