在C 中的令牌字符串中区分操作数和操作员

Differentiating between operands and operators in a tokenized string in C++

本文关键字:操作数 操作员 中区 字符串 令牌      更新时间:2023-10-16

如何编写代码

if(token is a operand)
    do this
if(token is a operator)
   do this

对于操作数,可以使用stoi()函数,但是如何处理操作员?

另外,我如何象征没有空格的字符串?

一种常见的方法是进行单个字符lookahead-

  • 如果是数字,则将以下字符串作为操作数解析。
  • 如果它是您的操作员之一的主要角色,则将以下字符串作为操作员解析。

有不同的方法来使操作数和操作员不依赖白色空间。例如,对于操作数,只要数字/十六进制或.,您就可以继续读取字符,而本地机器很小,请跟踪进度(例如您是否已经看到了.)。

对于操作员,如果运算符的总数不太大,则可以简单地读取所需的字符数(假设它们可从输入流提供),并且进行字符串比较。