我想使用C ++制作计算器,以便可以输入表达式并计算结果。
例如,
输入
(5.2+4)*ln3.4+sin3
输出
11.39985
问题是我不知道如何从字符串中分离数字和运算符。对于操作数的长度和数字是不同的。有什么好办法吗?
实际上,这是一个比起初看起来要困难得多的问题,我是凭经验说的。
如果您想获得一个从头开始完全做到这一点的示例,请在这里提出一个我正在研究的示例的问题。它当然还不完整,但是链接到有关Pratt解析的精彩Java文章(实际上,可能是最好的文章),我认为这是解析表达式的最佳方法。我的问题是我试图将在那里找到的Java代码移植到C ++。您可以看到我遇到的一个问题。
您还需要了解有关词法分析器的一些理论,并学习如何创建令牌,我在那里不问这些。
关键是,如果您想从头开始,或者您只是想知道正在发生的事情,您还有很多研究要做,但是我当然鼓励您尝试一下,有一个最后期限。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句