运算级自增自减运算符大于取值运算符*,大于取地址运算符!
1 #include<stdio.h>
2 #include<string.h>
3 #define OK 1
4 #define ERROR 0
5 typedef char ElemType;
6 typedef int Status;
7 typedef struct Stack1
8 {
9 ElemType data;
10 struct Stack1 *next;
11 }Stack1,*SqlStack1;
12 //初始化一个栈
13 Status Init(SqlStack1 &L)
14 {
15 L->next=NULL;
16 return 0;
17 }
18 //进栈操作
19 Status In(SqlStack1 &L,ElemType e)
20 {
21 SqlStack1 p;
22 p=new Stack1;
23 p->data=e;
24 p->next=L;
25 L=p;
26 return OK;
27 }
28 //出栈操作
29 ElemType Out(SqlStack1 &L)
30 {
31 ElemType r;
32 r=L->data;
33 L=L->next;
34 return r;
35 }
36 int main()
37 {
38 SqlStack1 L;
39 int s_length;
40 int result=0;
41 L=new Stack1;
42 char s[20];
43 ElemType c1,c2;
44 printf("请输入想要判断的字符串:");
45 scanf("%s",&s);
46 s_length=strlen(s); //取得要判断的字符串长度
47 //进栈操作
48 for(int k=1;k<=s_length/2;k++)
49 {
50 In(L,s[k-1]);
51 }
52 if(s_length%2==0) //判断字符串长度是奇数还是偶数
53 {
54 for(int i=1;i<=s_length/2;i++)
55 {
56 c1=Out(L);
57 c2=s[s_length/2+i-1];
58 if(c1==c2) //进行判断
59 {
60 result=1;
61 continue;
62 }
63 else
64 {
65 result=0;
66 break;
67 }
68 }
69 }
70 else
71 {
72 for(int j=1;j<=s_length/2;j++)
73 {
74 c1=Out(L);
75 c2=s[s_length/2+j];
76 if(c1==c2) //进行判断
77 {
78 result=1;
79 continue;
80 }
81 else
82 {
83 result=0;
84 break;
85 }
86 }
87 }
88 //输出操作
89 if(result==1)
90 {
91 printf("该字符串是回文字符串!");
92 }
93 else
94 {
95 printf("该字符串不是回文字符串!");
96 }
97 return 0;
98