递归实现字符串的逆序。举例如下:比如字符串“abcdef”先拿出a,将f放在a的位置,f的位置补0,即“fbcde\0”指针向后偏移,指向下一个字符串“bcde\0”依次类推,直到下一个字符串长度为1时不再执行递归操作。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <assert.h>
void reverse(char *str)
{
assert(str != NULL);
int len = strlen(str);
int tmp = *str;
*str = *(str + len - 1);
*(str + len - 1) = '\0';
if (strlen(str + 1) > 1)
reverse(str + 1);
*(str + len - 1) = tmp;
}
int main()
{
char a[] = "abcdefg";
reverse(a);
printf("%s\n",a);
system("pause");
return 0;
}