将字符串转换为操作C++

Convert string into operation C++

本文关键字:操作 C++ 转换 字符串      更新时间:2023-10-16

我在这个论坛上看到了类似的问题,但我仍然有点困惑......我怎样才能转动看起来像这样的字符串:

          MyString = "5+4-3*2";

变成一个简单的数学运算,可以存储到一个整数中?(寻找最有效的解决方案)。

附言。我只能使用以下库:

    <cstdio>,<vector>,<cstring>,<string>,<cmath>

有人可以帮我吗?

这将帮助您:

解析算术表达式的算法

它是 C 语言,但您可以将其转换为 C++ 作为额外的锻炼:)

你也可以看看这个问题的答案 - 似乎涵盖了你要问的内容。

没有内置的功能可以C++执行此操作,例如其他语言中的eval类型函数。 您需要自己完成所有繁重的工作。

这将涉及:

  1. 分析字符串,将其分解为单个标记。 这里的一些令牌是:5+4等...
  2. 解析的令牌作为运算符和操作数进行内部处理。 运算符将是 +- 等,操作数是 54 等。
  3. 以某种方式为每个操作数执行一个代码块并累积结果。 这可能涉及某处的大switchif-else块,您支持的每个操作员都有一个条件。 您也可以尝试以某种方式使用模板或继承,但我更愿意一开始就保持简单。