成对出现括号的问题
问题是“合法的括号”,及括号要成对出现,且要按照正确的顺序,例如:{}[](),{[]}()就是合法的,([),([)]就不对。下面是我的代码,不过只能判断相邻成对出现的,例如{}()[]等,请问该怎么改?
#include<stdio.h>
#include<string.h>
int main()
{
char ch[1000];
int i=0,a=0;//a用来判断括号是否成对出现,若整个字符串中都成对,输出True。
scanf("%s",ch);
for(i=0;i<strlen(ch);i+=2)
{
if(ch[i]=='{')
{
if(ch[i+1]!='}')
{
printf("False\n");
a=1;
break;
}
}
else if(ch[i]=='[')
{
if(ch[i+1]!=']')
{
printf("False\n");
a=1;
break;
}
}
else if(ch[i]=='(')
{
if(ch[i+1]!=')')
{
printf("False\n");
a=1;
break;
}
}
}
if(a==0)
{
printf("True\n");
}
return 0;
}