请帮我看看括号匹配,那里有问题,执行时老是错误终止。谢谢!
程序代码:
#include<stdio.h> #include<stdlib.h> typedef struct{ char *base,*top; int size; }stack2; int init_stack2(stack2 &s); int push2(stack2 &s,int e); int pop2(stack2 &s); int sfull2(stack2 s); int empty2(stack2 s); int gettop2(stack2 s,char &e); void get(char *str) {gets(str);} void match(char*str,stack2 &s) {while(*str) {switch(*str) {case'(': push2(s,*str);break; case')': if(s.top==s.base) {printf("右括号多余\n");return; } pop2(s);break;} str++;} if(s.top==s.base) {printf("匹配\n");return;} else{printf("不匹配\n");return;} } void main() {stack2 s; char *str; init_stack2(s); printf("shuru\n"); get(str); match(str,s); }