【发布时间】:2018-02-18 02:33:54
【问题描述】:
我试图弄清楚如何检查字符串中的一些关键字。情况就是这样。我从文件中获取一行并将其保存到临时字符串中。我有一个字符串数组,其中包含我正在寻找的关键字类型。比如 begin 和 end 两个关键字,除了一堆 if 语句来检查每个字符,还有其他方法吗? 我的问题是我将为我拥有的每个关键字获得的 if 和 else 的数量,所以我想要一种更有效的方法 c++
【问题讨论】:
-
“我的问题是我会为我拥有的每个关键字获得的 if 和 else 的数量,所以我想要一种更有效的 C++ 方式”——打开你的 C++ 书到本章教你如何使用
std::map或std::unordered_map,阅读本章。 -
您是否认为向我们展示您的代码会有所帮助?
-
@SamVarshavchik 我从未使用过 map 或 unordered_map,我会检查一下,谢谢,但这是我的总体目标。从此字符串“开始 int a = 0”。我想看看每个单词是否适合作为关键字,或者我会将其保存为标识符或运算符。所以我需要检查 b 然后 e, i g .... 直到我遇到空格或分隔符。如果它适合关键字,我将其保存为关键字,如果不只是作为标识符,因为最后它不像字符串的 find 有关键字,它是检查哪个单词是
-
这种做法是错误的。这不是标记器或此类解析器通常的工作方式。解析非平凡结构的输入实际上是一个相当复杂的过程;而传统解决方案采用lexical analyzer 和recursive descent parser。这是大学水平的计算机科学,因此,不能在 stackoverflow.com 上的几段中描述,尤其是对于没有必要背景知识的人。
-
我是一名大学生,是编译器设计课。我们正在制作一个程序来模拟一个词法分析器,它正在读取一个输入文件,该文件是一个代码,然后在屏幕上将代码显示为一个令牌流。
我们正在模拟分析器,这就是为什么我们没有按应有的方式存储令牌。我试图找到一种方法来检查字符串中的字符以对其进行测试,然后深入研究主要目的。只是为它找到一个算法或语法。
标签: c++ string char keyword-search