Как получить и оценить выражения из строки в C

Как получить и оценить выражения из строки в C

char *str = "2*8-5+6"; 

Это должно дать результат как 17 после оценки.

Попробуйте сами. вы можете использовать структуру данных стека для оценки этой строки здесь, это ссылка на реализацию (его в c ++) структуры данных стека для строковой калькуляции

Вы должны сделать это сами, C не дает никакого способа сделать это. C – язык очень низкого уровня. Самый простой способ сделать это – найти библиотеку, которая это делает, или если этого не существует, используйте lex + yacc для создания собственного интерпретатора.

Быстрый google предлагает следующее:

Вы должны попробовать TinyExpr . Это один исходный код C (без зависимостей), который вы можете добавить в свой проект.

Использование его для решения вашей проблемы – это просто:

 #include  #include "tinyexpr.h" int main() { double result = te_interp("2*8-5+6", 0); printf("Result: %f\n", result); return 0; } 

Это напечатает: Result: 17