初学数据结构,括号匹配的代码,结果一直不能匹配成功?
程序代码:#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是输出空格呀?









