参考以下公认的解决方案: SO:expression_evaluator

任何人都可以提供一个与否定一起使用的版本吗?

之类的东西
((!(0 or !1) and !((0 or 1 or 1) and !1))

也需要工作。

我得到了它的工作,所以否定0或1是好的,但我不能让它与整个群体的否定一起工作(!在括号开头)

我在* expr =='中从eval返回后尝试否定tmp('阻止..如果在调用它之前已经看过了,但是那不起作用。

有帮助吗?

解决方案

该答案中的代码有点特别。解析是一个众所周知的领域,不需要发明。其中一个答案建议考虑递归下降解析。我是第二个推荐。

其他提示

此处描述的算法可以处理一元运算符(具有一个操作数的运算符) ,以及功能。

我曾经将它用作完整的C表达式求值程序的基础,它支持嵌入式系统上命令行控制台的符号变量。我没有使用随附的示例代码,而是从头开始编写它以符合我的目的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top