C++:如何使用堆栈搜索报价

C++: How to search for quoatations using stacks

本文关键字:搜索 堆栈 何使用 C++      更新时间:2023-10-16

我必须创建一个程序来读取文本文件并检查匹配的括号、括号、[]、引号和块注释。如果存在不平衡,则返回 false,如果平衡,则返回 true。

我已经做了[] () {},需要帮助使其适用于/* */" "' ',其中单/双引号和块注释中的所有内容都被忽略。我尝试了很多方法,但都没有成功让它们发挥作用。

程序现在需要处理两种状态/模式,而不是一种:

  • 它以"匹配模式"启动,将( { [放在堆栈上,如果它们匹配,则弹出) } ]
  • 一旦你读到一个/*,你进入"注释模式"并忽略所有内容,直到你读*/,此时你回到与前一个堆栈的"匹配模式"。"'也是如此.

如果您在"注释模式"下到达输入末尾,则打印出:"不平衡符号",其中包含使您进入该模式的符号。

您只需执行与括号相同的操作即可创建用于打开和关闭的堆栈,然后逐个弹出每个堆栈,然后通过比较弹出的值来检查验证