Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.09.2017, 17:21   #1
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию символ как оператор

Возможно тупой вопрос - как использовать символ в качестве оператора? предположим символ содержит + или - или любой другой оператор то есть char x = '+'; и вот как вставить его в выражение что бы он воспринимался как оператор,а не как символ? что-то вроде cout<<5x6<<endl;
NDrago вне форума Ответить с цитированием
Старый 22.09.2017, 17:28   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

если операций мало, то можно просто написать код разбора
Код:
if(x=='+')
  result=op1+op2;
if(x=='-')
  result=op1-op2;
иначе смотрите в сторону c++ evaluate expression (поиском легко найти варианты). например, ТЫЦ
Serge_Bliznykov вне форума Ответить с цитированием
Старый 22.09.2017, 17:31   #3
NDrago
Пользователь
 
Регистрация: 22.09.2017
Сообщений: 45
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
если операций мало, то можно просто написать код разбора
Код:
if(x=='+')
  result=op1+op2;
if(x=='-')
  result=op1-op2;
иначе смотрите в сторону c++ evaluate expression (поиском легко найти варианты). например, ТЫЦ
да,так можно,но хочется красиво,как говорится в одну строчку,такое вообще возможно? или я ищу несуществующее?
NDrago вне форума Ответить с цитированием
Старый 22.09.2017, 17:36   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от NDrago Посмотреть сообщение
но хочется красиво,как говорится в одну строчку
подключите код для вычислений (как это описано для " c++ evaluate expression") и дальше вызывайте функцию в одну строку:
result = expression( "ваша строка");

как вариант - думаю, что можно даже взять готовую библиотеку для парсинга и вычислений и подключить её к своему проекту.

насколько мне известно, готовой встроенной функции в C/C++ нет.

p.s. как я понял, Вы по ссылочке, которую я дал, не ходили, примеры на StackOverflow не смотрели...

Последний раз редактировалось Serge_Bliznykov; 22.09.2017 в 17:38.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 24.09.2017, 10:37   #5
SAMOUCHKA
Форумчанин
 
Регистрация: 07.08.2011
Сообщений: 576
По умолчанию

ситнтактический анализатор у Шилдта описан. Книга "Полный справочник по с++"
SAMOUCHKA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Assembler!!! Заменить на символ ‘!’ каждый 3тий символ в строке. Leon9313 Помощь студентам 0 24.04.2012 13:02
как вставить символ?? Andrey770 Паскаль, Turbo Pascal, PascalABC.NET 4 05.04.2011 23:22
Оператор выбора или условный оператор[Перенесено из JavaSE] merhaba1992 Помощь студентам 1 20.01.2011 17:06
Вычислить используя, оператор цикла for и оператор безусловного пе Knubbe Помощь студентам 1 18.12.2009 10:24