Преобразование строки в математическую оценку
Хорошо, поэтому я хочу использовать строку в качестве входных данных (например, "16 * 12 + 25" ), преобразовать ее в математическую оценку, которую компьютер может понять и вернуть оцениваемое значение. Я, вероятно, мог бы написать это сам, но это, скорее всего, займет довольно много времени, и в конце концов, это все равно не закончится так хорошо, как мне бы хотелось, если я не хочу вкладывать в него еще больше времени.
Итак, мой вопрос: есть ли script, библиотека или api, которые, как вы знаете, могут сделать это для С++? Я нашел некоторые для java, python и .NET. Но я не работаю ни с одним из этих языков, и я хотел бы оставаться на С++ так долго (надеюсь, на протяжении всего проекта), насколько это возможно. У вас есть хорошие идеи или ссылки?
Ответы
Ответ 1
Я нашел то, что искал! Загружаемым источником является С++ и проект CodeBlocks. Вы можете найти его здесь: http://www.speqmath.com/tutorials/expression_parser_cpp/index.html
Более сложный парсер выражений, рекомендованный Джаредом: http://www.partow.net/programming/exprtk/index.html
Ответ 2
Для этого нет ничего встроенного в С++; все синтаксический код выражения принадлежит компилятору. Вам нужно будет использовать некоторую внешнюю библиотеку. Быстрый поиск в Google вызывает muParser, который выглядит довольно разумно.