C语言表达式求值中的表达式匹配问题

void churu(Stackchar *p)
{
char a[100];
char b;
int i=0;
do{
b=gets(str);
a[i]=b;
if(a[i]=='('){
push(p,a[i]);}
i++;}
while(ib!='#');
while(i!=0){
if(a[i]==')'){
Pop(st,p.data[p.top]);
i--;}
else{
i--;}
if(p.top==-1){
return 1;
}
else{
printf("匹配失败")
}

img

img


b要么b[100],要么*b ,要么改成getchar获取