Задать вопрос
Daniro_San
@Daniro_San
Программист

Как распарсить строку без обратной польской нотации?

Пишу калькулятор для выражений примерно такого типа:
4+2*2-3*(4-5*9)-6
С переводом string в double и обратно справиться получилось (запилив пару своих велосипедов вместо itoa и atof), а вот с разбором выражения возникли проблемы.
Обратную польскую нотацию использовать не хочу, слишком сухо и тривиально.
Пытался использовать различные извраты с рекурсией, но есть ошибки.
Можно ли как нибудь разобрать строку без использования ОПН ?
  • Вопрос задан
  • 185 просмотров
Подписаться 1 Оценить 2 комментария
Решения вопроса 1
@makaleks
Принципиально другого способа не знаю, но, если очень надо, с рекурсией мучиться можно. Будут ошибки, сложности добавления новых операторов и прочее.
Сам на заре ещё самообучения пилил такое дело. Тот ещё ужас... Хотите подсмотреть - ловите .h, но это фактически Си и вообще я ничего не знал. Хотя поддерживает аргументы (через латинские буквы), функции sin и cos, а также скобки и модули. Ни пробелов, ни табуляции.

Надеюсь, увидев этот ужас, Вы поймёте, что лучше разобрать обратную польскую.
Лучше разобрать, правда.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы