在C 中的令牌字符串中区分操作数和操作员
Differentiating between operands and operators in a tokenized string in C++
如何编写代码
if(token is a operand)
do this
if(token is a operator)
do this
对于操作数,可以使用stoi()
函数,但是如何处理操作员?
另外,我如何象征没有空格的字符串?
一种常见的方法是进行单个字符lookahead-
- 如果是数字,则将以下字符串作为操作数解析。
- 如果它是您的操作员之一的主要角色,则将以下字符串作为操作员解析。
有不同的方法来使操作数和操作员不依赖白色空间。例如,对于操作数,只要数字/十六进制或.
,您就可以继续读取字符,而本地机器很小,请跟踪进度(例如您是否已经看到了.
)。
对于操作员,如果运算符的总数不太大,则可以简单地读取所需的字符数(假设它们可从输入流提供),并且进行字符串比较。
相关文章:
- 控制允许动态运行c++的并发操作数
- 为什么C++逐位AND运算符在不同大小的操作数中表现为这样
- <<操作员在下面的行中工作
- C++ 与操作员不匹配<<
- 操作员C++的模棱两可的过载
- 错误 C2679:二进制"<<":未找到采用类型 'std::string_view' 的右侧操作数的运算符(或者没有可接受的转换)
- C++ 带有向量的 IF 计算操作数
- 是否所有C++运算符都接受操作数?
- C++中>>操作员过载时出现问题?
- 一元*运算符的操作数是否期望一个 prvalue
- NaN 上的宇宙飞船操作员
- 没有操作员"=="处理这些操作数
- 与任何算术操作员都会影响优化的恒定操作数顺序
- 没有操作员=匹配这些操作数C ,即使上述操作员已被超载
- 在C 中的令牌字符串中区分操作数和操作员
- 错误:“ const char*”类型的操作数和“ const char [7]”类型为二进制“操作员 ”
- 多个操作数,用于超载 *操作员
- 逗号操作员的左右操作数没有效果(警告)
- 有多少操作数可以超载函数呼叫操作员采用
- C++ [错误] 与"操作员=="不匹配(操作数类型为"车辆"和"常量车辆")