Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
UA_Serpent
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 3
#1

Посчитать выражение, введенное в строку - C++

01.04.2011, 16:51. Просмотров 386. Ответов 3
Метки нет (Все метки)

Что-то запутался, помогите пожалуйста добрым кодом на следующую задачу:

Пользователь вводит с клавиатуры арифметическое выражение (используемые операции только сложение и вычитание). Посчитать его значение. Если в выражении встречаются другие символы, выдать сообщение, что выражение введено не корректно.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
01.04.2011, 16:51     Посчитать выражение, введенное в строку
Посмотрите здесь:

C++ Вычислить выражение, введенное с клавиатуры
C++ Ввести строку и слово. Вставить введенное слово за самым коротким словом в строке.
C++ Посчитать выражение формулой Горнера, вопрос- как?
C++ Посчитать вхождение каждого слова в строку
Вычислить выражение, введенное в строку C++
указатели (посчитать кол-во вхождений подстроки в строку) C++
Посчитать выражение через циклы while и for C++
Преобразовать строку, содержащую выражение на Си C++
C++ Преобразовать строку в выражение
Вывести определенную строку в ответ на введенное определенное слово C++
C++ Многопоточность. Посчитать выражение
Посчитать количество разных символов, входящих в строку C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
LaГushan
124 / 124 / 14
Регистрация: 12.03.2011
Сообщений: 227
01.04.2011, 17:12     Посчитать выражение, введенное в строку #2
Страуструп описывает создание простого калькулятора, ознакомьтесь.
UA_Serpent
0 / 0 / 0
Регистрация: 01.04.2011
Сообщений: 3
02.04.2011, 10:32  [ТС]     Посчитать выражение, введенное в строку #3
LaГushan
Почитал, но это не совсем то что мне нужно.

Я нашел функцию atoi которая выделит из строки цифры и знаки + и -, и если операция будет к примеру 2+2 или 4-3 то все считается правильно, но если написать 2-3+3 я получаю -4, atoi почему-то возвращает последнее значение как "-3" не могу понять почему.
Еще я не делал проверку на числа больше 10, но мне бы сначала разобраться с предыдущим абзацем.
asics
Freelance
Эксперт C++
 Аватар для asics
2842 / 1779 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
02.04.2011, 15:03     Посчитать выражение, введенное в строку #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Если выражение будет содержать только +/- то можно так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <string>
#include <algorithm>
#include <sstream>
 
int main(){
  std::string expression;
  std::cout << "\n\nEnter expression: ";
  std::cin >> expression;
  std::replace(expression.begin(), expression.end(), '+', ' ');
  for(size_t i = 0; i < expression.length(); ++i)
    if(expression[i] == '-')
      expression.insert(i++, 1, ' ');
  std::istringstream ist(expression);
  int sum = 0, num;
  while(ist >> num)
    sum += num;
  std::cout << "\n\nResult = " << sum << std::endl;
  return 0;
}
Yandex
Объявления
02.04.2011, 15:03     Посчитать выражение, введенное в строку
Ответ Создать тему
Опции темы

Текущее время: 23:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru