C ++库中是否有将字符串转换为算术运算的函数?

时间:2019-05-16 10:30:15

标签: c++ string type-conversion int

我知道stoi()函数可能只适合整数值,但是我需要将以下字符串转换为实际的算术运算。例如:

"3 + 7 * 4 - 2"3 + 7 * 4 - 2

如果必须将其分配给变量,结果将为29。

1 个答案:

答案 0 :(得分:2)

简而言之:不。

如何处理此问题实际上取决于一开始如何创建字符串。 这个用户是否在stdin上提供了一些简单的输入,而您使用std::cin进行了捕获?

如果它确实是一个简单的表达式(没有括号等),则可以从stdin中读取一个int,一个char,一个int,一个char,一个int等...,然后将char解析为运算符。

当我遇到类似的问题时,我遇到了Shunting-Yard Algorithm,这似乎正是我想要的。

您还可以实现一些语法。它工作时确实很有意义,但这是很多工作和过度杀伤力。参见parsing math expression in c++。与代码示例相比,您将获得比在这里更好的注释。