C не имеет встроенной функции eval, но есть библиотеки, которые предоставляют ее.
Я настоятельно рекомендую использовать TinyExpr . Это бесплатный C-код с открытым исходным кодом, который реализует математическую оценку из строки. TinyExpr - это всего лишь 1 C-файл, и он содержит около 500 строк кода. Я не думаю, что вы найдете более короткий или более простой способ, который на самом деле завершен (а не просто пример с игрушкой).
Вот полный пример его использования, который должен продемонстрировать, насколько это просто:
#include "tinyexpr.h"
#include <stdio.h>
int main(int argc, char *argv[])
{
printf("%f\n", te_interp("5 * 5", 0)); //Prints 25
return 0;
}
Если вы хотите создать решатель выражений самостоятельно, я бы рекомендовал использовать исходный код TinyExpr в качестве отправной точки. Это довольно чисто и легко следовать.