C# 实现括号匹配检查器

4星 · 超过85%的资源 需积分: 50 81 下载量 160 浏览量 更新于2024-10-09 5 收藏 2KB TXT 举报
"C# 用于检测括号匹配的代码示例" 在编程领域,括号匹配是一个常见的问题,尤其在解析表达式或处理代码结构时。C# 提供了一种简洁的方式来解决这个问题,通常使用栈(Stack)数据结构。在给定的代码中,我们看到一个简单的 C# 应用程序,它能够检查用户通过键盘输入的字符串中的括号是否正确匹配。 首先,定义了一个名为 `Stack` 的类,它模拟了栈的行为。这个类包含一个字符数组 `elem` 存储元素,一个 `count` 计数器记录栈顶位置,以及一个 `stacksize` 表示栈的容量。`Stack` 类提供了两个方法:`Push` 用于将元素压入栈,`Pop` 用于从栈顶弹出元素。 接着,我们来到 `check` 方法,这是实际进行括号匹配检查的地方。首先,读取用户输入的字符串并存储在 `C` 变量中。然后,创建一个 `StackS` 实例,用于存储左括号。遍历输入字符串的每个字符,如果遇到左括号('(' 或 '['),将其压入栈;如果遇到右括号(')' 或 ']'),则检查栈是否为空。如果栈为空,表示缺少左括号,输出错误信息并结束检查。否则,从栈中弹出一个元素并比较,如果匹配(左括号与对应的右括号),则继续检查;如果不匹配,则输出错误信息并结束检查。 在遍历完整个字符串后,如果 `i`(循环变量)等于 `C.Length`,表示已检查完所有字符。此时,如果栈为空,说明所有括号都已匹配,输出“matching”;否则,说明缺少右括号,输出“lackofrightparenthesis”。 最后,`Main` 方法调用 `check` 函数来启动程序,并等待用户输入。 这段代码展示了如何利用栈数据结构来实现括号匹配检查,它对于理解数据结构和算法在实际问题中的应用是非常有帮助的。此外,此方法也可扩展应用于其他需要检查配对符号正确性的场景,如XML或JSON解析。