c语言中很多大括号怎么判断,【c语言】检查大括号匹配

用c语言检查代码中的大括号是否匹配

#include

int main()

{

int ch;

int count=0;

while((ch = getchar())!= EOF)  //判断文件是否结束

{

if((ch == '}') && (count == 0))  //

{

printf("unmatched \n");

return 0;

}

else if((ch == '}') && (count !=0))

{

count --;

}

else if(ch == '{')

{

count++;

}

}

if(count == 0)

printf("matched\n");

else

printf("unmatched\n");

return 0;

}

代码的思想是定义一个ch变量读取文件中的“{”“}”,定义count作为计数器,当ch读取到"{"时,计数器加1,当ch读取到"}"时,计数器减1。分别判断了三种情况下:

第一种是先读到右括号而计数器为零时,直接输出不匹配。第二种是读到右括号而计数器不为零的时候,count自减。第三种是读到左括号的时候,count自加。当文件读完的时候,若count等于零,则说明代码中的大括号是匹配的。反之则不匹配。输出即可。

运行结果如下:

22e41ce904fcd8408ba7608e0bf260ff.png

6f7f313cd6cbe88eeb8c4143d1b7c91e.png

6ab9f52d557aa22d8e2dff81df1621e6.png

注:getchar:从stdio流中读字符,相当于getc(stdin),它从标准输入里读取下一个字符。返回类型为int型,返回值为用户输入的ASCⅡ码,出错返回-1。

EOF: 在C语言中,或更精确地说成C标准函数库中表示文件结束符(end of file)。在while循环中以EOF作为文件结束标志,这种以EOF作为文件结束标志的文件,必须是文本文件。在文本文件中,数据都是以字符的ASCII代码值的形式存放。我们知道,ASCII代码值的范围是0~255,不可能出现-1,因此可以用EOF作为文件结束标志。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值