Daniro_San
@Daniro_San
Программист

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

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

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

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

Войти через центр авторизации
Похожие вопросы