C和指针-编程练习-花括号是否匹配

2021-12-06 13:20:04 浏览数 (1)

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;
}

0 人点赞