Преобразование строки в математическую оценку

Хорошо, поэтому я хочу использовать строку в качестве входных данных (например, «16 * 12 + 25»), преобразовать ее в математическую оценку, которую компьютер может понять и вернуть оцениваемое значение. Я, вероятно, мог бы написать это сам, но это, скорее всего, займет довольно много времени, и в конце концов, это все равно не закончится так хорошо, как мне бы хотелось, если я не хочу вкладывать в него еще больше времени.

Итак, мой вопрос: есть ли какой-либо скрипт, библиотека или api, которые, как вы знаете, могут сделать это для C ++? Я нашел некоторые для java, python и .NET. Но я не работаю ни с одним из этих языков, и я хотел бы оставаться на C ++ так долго (надеюсь, на протяжении всего проекта), насколько это возможно. У вас есть хорошие идеи или ссылки?

Я нашел то, что искал! Загружаемым источником является C ++ и проект CodeBlocks. Вы можете найти его здесь: http://www.speqmath.com/tutorials/expression_parser_cpp/index.html

Более сложный парсер выражений, рекомендованный Джаредом: http://www.partow.net/programming/exprtk/index.html

Для этого нет ничего встроенного в C ++; все синтаксический код выражения принадлежит компилятору. Вам нужно будет использовать некоторую внешнюю библиотеку. Быстрый поиск в Google вызывает muParser, который выглядит довольно разумно.

  • Присвоение массиву char значения в C
  • Лучший способ разрешить путь к файлу слишком долгое исключение
  • Удаление символов строки строки из строки Java
  • Java - конвертировать целое число в строку
  • Проверьте, не является ли строка пустой и не пустой
  • Как заменить буквенные подстроки без учета регистра в Java
  • Извлечь всю строку из проекта java
  • Получить имя файла из строки URI в C #
  • Как проверить, равна ли моя строка нулевой?
  • Преобразование из шестнадцатеричного в строку
  • Почему оператор switch не может применяться к строкам?
  • Давайте будем гением компьютера.