题目:编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。例如,输入“{()wqwq6}{{{}}}”判断里面的花括号匹配,返回1;输入“{{{}}}{”判断里面的花括号不匹配,返回0。
解题思路:设置一个计数器count,当读取到’{‘时count++,当读取到’}’时,count–。用一个while循环遍历整个字符串,最后count为0时,则花括号匹配。
int main()
{
char str;
int i = 0;
int j = 0;
printf("请输入字符串:");
while ((str = getchar()) != EOF) //循环开始,EOF结束
{
if (str == '{') //输入一个‘{’时,i++
{
i++;
}
else
{
if (str == '}')//输入一个‘}’时,j++
j++;
}
}
if ((i == j) && (i != 0) && (j != 0))//如果‘{’和‘}’数量相等并且两者均不为零时,确认匹配
{
printf("匹配\n");
}
else
{
printf("不匹配\n");
}
system("pause");
return 0;
}