我在这个论坛上看到过类似的问题,但我仍然有点困惑....我怎么能把这个字符串看起来像这样:
MyString = "5+4-3*2";
进入一个可以存储到int中的简单数学运算? (寻找最有效的解决方案)。
聚苯乙烯。我只能使用以下库:
<cstdio>,<vector>,<cstring>,<string>,<cmath>
有人可以帮帮我吗?
答案 0 :(得分:3)
这将对您有所帮助:
Algorithms for Parsing Arithmetic Expressions
它在C中,但您可以将其转换为C ++作为额外的练习:)
您还可以查看this question的答案 - 似乎涵盖了您的要求。
答案 1 :(得分:2)
C ++没有内置的功能,就像其他语言中的eval
类型函数一样。你需要自己完成所有繁重的工作。
这将涉及:
5
,+
,4
等...... +
,-
等,操作数为5
,4
等。switch
或if-else
块,每个运营商支持一个条件。您可能也会尝试以某种方式使用模板或继承,但我更倾向于保持简单开头。