第一种
1 #include<stdio.h>
2 #include<string.h>
3
4 int main()
5 {
6 int i;
7 char a[20];
8
9 scanf("%s",a);
10
11 int length = strlen(a);
12
13 for(i = length - 1; i >= 0; i--)
14 {
15 printf("%c",a[i]);
16 }
17 printf("\n");
18
19 return 0;
20 }
这种方法就是简单的定义一个数组,输入字符串后,计算字符串长度,然后倒序输出,就完成了工作。
第二种
1 #include <stdio.h>
2 #include <stdlib.h>
3 #include <string.h>
4
5 char *reverse(char *s)
6 {
7 int i;
8 char *tmp, *q;
9
10 char *ptr = (char *)malloc(sizeof(char)*20);
11 if (NULL == ptr)
12 {
13 perror("malloc");
14 }
15 q = ptr;
16
17 int length = strlen(s);
18 tmp = s + length -1;
19
20 for(i = 0; i < length; i++ )
21 {
22 *ptr++ = *tmp--;
23 }
24 strcpy(s,q);
25 free(q);
26 return s;
27 }
28
29 int main()
30 {
31 char *str;
32 char *ptr;
33 str = (char *)malloc(sizeof(char)*20);
34 if(NULL == str)
35 {
36 perror("malloc");
37 }
38
39 scanf("%s",str);
40 ptr = reverse(str);
41 printf("%s\n",ptr);
42
43 free(str);
44 return 0;
45 }
这种方法就比较高级了,包含了很多东西,有指针,有调用函数,有malloc分配内存,虽然复杂,但是正因为包含的东西多,才更值得c语言初学者去写,如果能够完全理解这个程序,对c语言的基础学习会很有帮助。