C和指针-编程练习-花括号是否匹配
题目:
代码语言:javascript
复制编写一个程序,它从标准输入读取C源代码,并验证所有花括号都正确地承兑出现。注意:你不必担心注释内部、字符串常量内部和字符常量形式的花括号。
代码语言:javascript
复制#include <stdio.h>
#include <stdlib.h>
/*
* 检查一个程序的花括号对
*/
int main()
{
char ch;
int braces = 0;
//逐字符读取程序
while ((ch = getchar()) != EOF)
{
if(ch == '{') //左花括号始终是合法的
{
braces ;
}
if(ch == '}') //右花括号只有当它和一个左花括号匹配时才是合法的
{
if(braces == 0)
{
printf("Extra closing brace!n");
}
else
{
braces--;
}
}
}
//没有更多输入了, 验证是否存在未被匹配的左花括号
if(braces > 0)
{
printf("%d unmatched opening brace(s)!n", braces);
}
return 0;
}