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

Проверка на скобки в строчном калькуляторе - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Ввод/вывод, метод класса http://www.cyberforum.ru/cpp-beginners/thread1237512.html
Добрый день, только начал изучать c++ и сразу много всяких непонятных ошибок, в c# куда проще было =( #include <iostream> #include <string> #include <windows.h> #include <conio.h> #include "algorithm" using namespace std; int main()
C++ Удалить все пробелы в строке можно ли как то с помощью метода string.replace удалить все пробелы в строке? вот так не работает :( string str("this is test string"); str.replace(" ", ""); http://www.cyberforum.ru/cpp-beginners/thread1237507.html
C++ Возвращение ссылки на локальную переменную
Заметил недавно одну интересную вещь. Как вообще работает такой код? Причем коректно. int& func(); int main() { cout << func(); } int& func() { int a = 99;
C++ Что делать если нужно знести информацию в 2 разных объекта базового класса при закрытом наследование
Что делать если нужно знести информацию в 2 разных объекта базового класса при закрытом наследование? Например мне нужно держать скажем имя и проффесию в разных обьектах string.
C++ Разделить строку типа string на лексемы http://www.cyberforum.ru/cpp-beginners/thread1237481.html
Есть строка string, нужно разбить её на лексемы. У меня не получается использовать strtok с типом string.
C++ Разделить строку типа string на лексемы Есть строка string, нужно разбить её на лексемы. У меня не получается использовать strtok с типом string. подробнее

Показать сообщение отдельно
porshe
 Аватар для porshe
52 / 46 / 17
Регистрация: 18.07.2014
Сообщений: 194
02.08.2014, 13:21     Проверка на скобки в строчном калькуляторе
Можно хранить две переменные. Первая будет содержать количество открывающихся скобок, а вторая закрывающихся. В конце проверить, равно ли количество открывающихся закрывающимся. Если нет, то вывести ошибку.
Как-то так:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
int open, close;
open = close = 0;
for ( int i = 0; i < len; i++ )
{
   if ( str[len] == '(' )
       open++;
   else if ( str[i] == ')' )
   {
       close++;
       if ( close > open )
           break;
    }
 
}
 
if ( open != close )
    cout << "Ошибка! Неверно расставлены скобки!" << endl;
Где str - строка с выражением, а len-длинна строки с выражением.
 
Текущее время: 21:56. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru