c - 是否有任何 C 函数可以评估标准库中定义的字符串表达式?
问题描述
我正在寻找一个可以将字符串表达式评估为整数的函数,例如 fe:
10/2+4*3-(12+5); //Equals 0
进入一个int
值为的类型的对象0
。
复杂操作的功能会更好,即使这不是小时的需要:
2^(1/2)-99
标准 C 库(C89、C90,如果已编译)中是否定义了任何此类定义?
有没有具有这种功能的非标准库?
表达式支持的字符越多越好。
但即使是像 +,-,*,/,() 这样的基本操作也可以。
解决方案
标准 C 库(C89、C90,如果已编译)中是否定义了任何此类定义?
不,甚至在最新的 C11 或 C18 标准库中也没有。
有没有具有这种功能的非标准库?
我也找不到。你必须编写自己的函数来完成它。
也许在第一步扫描字符串并将其中的每个值存储到一个单独的字符串中。
正如我在评论中已经建议的那样,strtol
用于将11
字符串中的整数值转换为 type 的值int
。您可能需要使用它。在库中还有一个atoi
将字符串中的整数值转换为 an的函数,int
但此函数更容易出错,不应使用。
算术运算符也应存储在单独的字符串中,但稍后由自制例程进行评估。
但是可以在此处找到很好的示例和建议,其中向用户询问了类似(如果不相同)的问题:
推荐阅读
- c - 从编辑框中获取文本
- javascript - WebdriverIO - 如何检查浏览器通知
- postgresql - postgresql中的组装函数问题
- android - Google Android Sample MVVM - 为什么他们使用 MediatorLiveData 而不是通过 getter 传递 LiveData?
- twitter-bootstrap - 如何对齐引导图像中心
- office365 - 如何避免通过 Office365 REST API 检索 IM 消息
- powershell - 检索远程计算机的上次登录用户和登录时间
- java - 将多个表 SQLite android 与 azure 同步
- python - 在 Python 中通过大字符串去除列值
- reactjs - 反应:找不到模块:无法解析“xmlhttprequest”