【问题标题】:How to take input as a string and identify each character as a char, int or a float?如何将输入作为字符串并将每个字符标识为 char、int 或 float?
【发布时间】:2016-08-28 04:35:50
【问题描述】:

如何在 C++ 中将输入作为字符串并将每个字符识别为 char、int 或 float?

例如:如果我希望用户输入一个简单的3+2 = statement,那么我希望程序决定我是加减还是进行任何其他算术运算,然后相应地输出适当的答案。

【问题讨论】:

  • 您可以遍历字符串中的每个字符并确定操作的位置(在本例中为 +)。知道操作位置后,将从字符串开头到操作的每个字符作为第一个操作数,从操作到字符串末尾的每个字符作为第二个操作数。您可以使用atof 将字符串转换为双精度数,然后对操作数进行数学运算。使用if 语句来识别操作字符并执行相应的操作。
  • 这都是关于标记化的。谷歌将是一个很大的帮助
  • 您可以通过提升精神来做到这一点,看看提供的示例:github.com/djowel/spirit_x3/blob/master/example/x3/calc5.cpp
  • 我想要一个简单的运行代码
  • 你在 github 上的代码不工作

标签: c++


【解决方案1】:

您可以使用std::string.substr(...)std::regex 标记您的输入字符串。 一旦你标记了它,你应该确保语法是正确的。 然后只需执行语法。

以下是定义语言的方法:

  • 分隔符 = ' '
  • 运算符 = '+'、'-'、'*'、'/'
  • 整数 = \d+
  • 浮点数 = \d*.\d+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 2022-01-06
    • 2021-09-01
    相关资源
    最近更新 更多