1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4 void reverse(char *p)
5 {
6 //[方法一:采用递归的方式,不过有些难理解]
7 if(*p == '\0')
8 return ;
9 reverse(p+1);
10 printf("%c\n",*p);
11
12 //[方法二:采用数组的方式,比较容易理解]
13 int n = strlen(p);
14 int i;
15 char buf[n + 1];
16 for(i = 0;i < n;i++)
17 {
18 buf[n -1 - i] = *p++;
19 }
20 printf("%s\n",buf);
21
22 }
23
24 int main()
25 {
26 char *p = "abc ed hikl m";
27 reverse(p);
28 return 0;
29 }