使用递归的方法逆转字符串并不难,但是要写好程序并控制好指针并不容易。
算法思想:将最后一个字符调整到原字符串之首,递归逆转后面的N-1个字符。
#define MAXLEN 100
char* reverse(char* str)
{
int l = strlen(str);
if (l == 1)
{
return str;
}
char *a = (char *)malloc(sizeof(char) * MAXLEN);
char *b = (char *)malloc(sizeof(char) * 2);
strcpy(b, str + l - 1);//保存最后一个字符
strcpy(a, str);
a[l - 1] = '\0';//保存前l-1个字符
strcat(b, reverse(a));
strcpy(str, b);
return str;
}