编写一个程序,用于对C源程序进行括号匹配检查,并将检查结果输出到文件中 程序应检查输入源程序中左右大括号、小括号的个数是否相等,并目符合C语言语法规定的括号嵌套规则,不得交叉嵌套。输入文 件最长不超过500个字符。 本程序只检查括号是否匹配,不用对输入源程序中的其它语法成份进行检查【输入文件】 输入文件为当前目录下的checkin,是一段任意的C程序。【输出文件】 输出文件为当前目录下的check.out。该文件只有一行,是一个单词"True"或"False"。如果没有括号匹配错误则输出"True",否则输出"False”。【样例输入】 输入文件checkin的内容如下: static void PrintArr (int *p) int i= 0; while(*(p+i)) printf (“%4d",*(p + i)); i++;
时间: 2024-01-22 18:18:10 浏览: 66
用C语言检查输入括号是否匹配
5星 · 资源好评率100%
以下是Python语言的程序实现:
```python
def check_brackets(filename):
stack = []
with open(filename, 'r') as f:
for line in f:
for c in line:
if c in ['(', '{']:
stack.append(c)
elif c in [')', '}']:
if not stack:
return False
top = stack.pop()
if (c == ')' and top != '(') or (c == '}' and top != '{'):
return False
return not stack
result = check_brackets('checkin')
with open('check.out', 'w') as f:
f.write(str(result))
```
程序首先定义一个空栈,然后逐行读取输入文件,并逐个检查字符。如果遇到左括号,则将其加入栈中;如果遇到右括号,则将栈顶元素弹出并进行匹配。如果栈为空或者匹配不成功,则括号不匹配,直接返回False。最后,如果栈为空,则括号匹配成功,返回True;否则返回False。程序最后将结果写入输出文件中。
阅读全文