初学数据结构,括号匹配的代码,结果一直不能匹配成功?
程序代码:
#include <stdio.h> struct zhan { char *base; char *top; int size; }s; int main() { int n,i; char e,t; printf("请输入你要开辟的空间的大小:"); scanf("%d",&n); s.base=(char*)malloc(n*sizeof(char)); s.top=s.base; s.size=n; *s.top='#'; printf("请输入括号:"); for(i=0;i<n;i++) { scanf("%c",&e); if(e=='['||e=='{'||e=='(') { *(s.top++)=e;s.top++; } if(e==']'||e=='}'||e==')') { s.top--; printf("%c%c",s.top,e); if((e=='[')&&(*s.top==']')||(e=='{')&&(*s.top=='}')||(e=='(')&&(*s.top==')')) { printf("我是换行符!");getchar(); s.top--; if(s.top=='#') break; } else {printf("括号匹配不成功!"); return 0;} } } if((*s.top--)=='#') { printf("括号匹配成功!"); return 1; } else {printf("括号匹配不成功!"); return 0;} }
为什么在
printf("%c%c",s.top,e);的时候,s.top是输出空格呀?