将字符串解析为数学函数-C ++ [保留]

问题描述 投票:0回答:1

解析字符串,将其转换为数学函数并对给定输入求值是否可行?

例如

 string s = "sin(cos(x))";
 double x = 0;
 double ans = magic(s, x);
 cout << ans << endl;

ans = 0.8414

您将如何编写这个非常具体,模糊或广泛的功能?

Edit 1:我使问题变得不太模糊,堆栈溢出是(在这里插入最糟的):[

c++ parsing eval
1个回答
0
投票

如果没有大量工作,您将无法动态运行C ++。 C ++不是为这种动态计算而构建的。像Python或JavaScript这样的语言可以更轻松地完成此操作。

但是,如果要评估一些核心运算(基本算术,三角函数等),则可以构建一个词法分析器和解析器,以生成抽象的语法树,然后通过解释该树来“运行”它。

© www.soinside.com 2019 - 2024. All rights reserved.