括号匹配的检验(栈结构)
#include<stdio.h>
#include<string.h>
#define MAX
20
struct stack
{
char a[MAX];
int top;
}op;
void
main()
{
int flag=0;
char a;
op.top=-1;
printf("please
input!\n");
scanf("%c",&op.a[++op.top]);
while(op.a[op.top])
//这里可以用(op.top!=-1)做条件,同理的
{
scanf("%c",&a);
switch(a)
{
case
')':if(op.a[op.top]=='(')
op.top--;
else
flag=1;
break;
case
']':if(op.a[op.top]=='[')
op.top--;
else
flag=1;
break;
case
'}':if(op.a[op.top]=='{')
op.top--;
else
flag=1;
break;
case '(':
case '{':
case
'[':op.a[++op.top]=a;break;
}
if(flag)
break;
}
if(flag)
printf("input
error!\n");
else
printf("input
right!\n");
}

浙公网安备 33010602011771号