char stacks[10000]; //遍历字符串,将左括号入栈,右括号与栈顶配对,若匹配,则左括号出栈,栈顶减一
int matching(char *p,int n) //定义函数,用来检测括号是否配对,p为字符串首地址,n用来遍历字符串
int i,top;
top=0; //定义一个变量,用来存储栈顶,初始为top
for(i=0;i<n;++i)
{
if(p[i]==')' && stacks[top]=='(') //p[i]为右括号,与栈顶进行配对,若匹配,则出栈
top--;
else
{
if(p[i]==']' && stacks[top]=='[')
top--;
else //若p[i]为左括号,则入栈
stacks[++top]=p[i];
}
}
if(0==top) //若最终括号匹配,则左括号全部出栈,栈为空
return 1;
else
return 0;
}