解析字符串,将其转换为数学函数并对给定输入求值是否可行?
例如
string s = "sin(cos(x))";
double x = 0;
double ans = magic(s, x);
cout << ans << endl;
ans = 0.8414
您将如何编写这个非常具体,模糊或广泛的功能?
Edit 1:我使问题变得不太模糊,堆栈溢出是(在这里插入最糟的):[
如果没有大量工作,您将无法动态运行C ++。 C ++不是为这种动态计算而构建的。像Python或JavaScript这样的语言可以更轻松地完成此操作。
但是,如果要评估一些核心运算(基本算术,三角函数等),则可以构建一个词法分析器和解析器,以生成抽象的语法树,然后通过解释该树来“运行”它。