Преобразуйте много символических выражений из x^2 или x^3 в pow(x,n)
У меня есть много символических выражений с символом власти, которые я хочу скопировать в программу на C++. Однако у них есть символ власти ^
который не используется в C. Любой совет для быстрого изменения? Должен ли я использовать регулярные выражения я могу сделать GCC, чтобы увидеть ^
как pow()
?
1 ответ
Чтобы быть уверенным, что ничего не запутано, вам нужен парсер, который знает, когда ^
на самом деле используется как символ власти (а не, например, в комментарии, строка).
Но вы можете сойти с простого регулярного выражения:
замещать (\w+)\s*\^\s*(\w+)
с pow(\1,\2)
,
Это должно охватывать большинство случаев и быть достаточно безопасным.
Конечно, это не удастся, если есть больше параметров, как в (a + b) ^ (c + d)
и т.д. Это регулярное выражение соответствует только такие вещи, как a^b
или же 2^3
, Это также не соответствует x^0.5
правильно, так что если это может произойти, вам нужно ([\w.]+)\s*\^\s*([\w.]+)