将许多符号表达式从x^2或x^3转换为pow(x,n)

Transform a lot of symbolic expression from x^2 or x^3 to pow(x,n)

本文关键字:pow 转换 符号 许多 表达式      更新时间:2023-10-16

我有很多带有幂符号的符号表达式,我想在C++程序中复制它们。然而,他们有C中没有使用的电源符号^。有什么建议可以快速更改吗?我应该使用正则表达式吗?我可以使gcc将^视为pow()吗?

为了确保不会弄乱任何东西,您需要一个解析器来知道^何时实际被用作电源符号(而不是例如在注释、字符串中)。

但您可能会使用一个简单的正则表达式:

(w+)s*^s*(w+)替换为pow(1,2)

这应该涵盖大多数情况,而且相当安全。

当然,如果有更多的参数,比如(a + b) ^ (c + d)等,它就会失败。这个正则表达式只匹配a^b2^3等。它也不能正确匹配x^0.5,所以如果可能发生这种情况,您需要([w.]+)s*^s*([w.]+)