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

Определить соответствие разных видов скобок в строке - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Ввести целое число N. Вывести все простые числа из диапазона [2,N] http://www.cyberforum.ru/cpp-beginners/thread194799.html
Нужна помощь в решении некоторых задач. 1. Ввести целое число N. Вывести все простые числа из диапазона 2. Ввести строку и два слова, заменить все вхождения первого слова на второе 3. Написать функцию, находящую в строке символов симметричное слово Заранее спасибо.
C++ Количество повторений каждой буквы в строке Помогите пожалуйста! Задача: Написать программу, которая считывает строку, считает в ней количество слов и количество повторений каждой буквы. Выводятся только буквы, встречающиеся в строке ввода. Буквы следует выводить в алфавитном порядке. #include <iostream.h> #include "stdafx.h" #include <string.h> #include <conio.h> using namespace std; http://www.cyberforum.ru/cpp-beginners/thread194796.html
Не может создать EXE на Win7 C++
Установил Borland C++ 3.1 на Windows 7. Прописал все директории. При компиляции выдаёт ошибку, заявляя что не может создать EXEшник в директории OUTPUT. Кто-нибудь знает, как это исправить?
C++ Структуры
Известно количество очков, набранных каждой из 19-ти команд участниц первенства по футболу. Перечень очков и команд дан в порядке занятых ими мест, то есть в порядке убывания, количества набранных очков(ни одна пара команд-участниц не набрала одинаковое количество очков). Выяснилось, что в перечень забыли включить ещё одну, двадцатую команду. Получить новый список команд (с учетом дополнительной...
C++ Классы и обьекты http://www.cyberforum.ru/cpp-beginners/thread194783.html
Народ покажите плиз как это делается а то пока вьехать не могу((
C++ Создать двумерный массив и поменять в нем местами четные и нечетные элементы написать двумерный массив и поменять в нем местами четные и нечетные элементы подробнее

Показать сообщение отдельно
Mr.X
Эксперт С++
3049 / 1694 / 265
Регистрация: 03.05.2010
Сообщений: 3,867
22.11.2010, 22:29
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
//////////////////////////////////////////////////////////////////////////////////////
//проверить текстовый файл(содержащий текст) на предмет соответствия 
//разных видов скобок, т.е при выборе одной из скобок должна указываться 
//парная ей скобка...
//////////////////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <stack>
#include <string>
//////////////////////////////////////////////////////////////////////////////////////
typedef std::string       T_str;
typedef char              T_bracket;
typedef std::stack<char>  T_brackets_stack;
//////////////////////////////////////////////////////////////////////////////////////
const T_str  OPEN_BRACKETS("([{");
const T_str  CLOSE_BRACKETS(")]}");
const T_str  BRACKETS(OPEN_BRACKETS + CLOSE_BRACKETS);
//////////////////////////////////////////////////////////////////////////////////////
bool  is_open_bracket(T_bracket  bracket)
{
    return  OPEN_BRACKETS.find(bracket) != T_str::npos;
}
//////////////////////////////////////////////////////////////////////////////////////
T_bracket  open_bracket_from(T_bracket  close_bracket)
{
    T_str::size_type  pos = CLOSE_BRACKETS.find(close_bracket);
    if(pos == T_str::npos) return 0;
    return OPEN_BRACKETS[pos];
}
//////////////////////////////////////////////////////////////////////////////////////
bool  brackets_are_correct(const T_str  s)
{    
    T_brackets_stack  brackets_stack;
    
    T_str::size_type  pos = 0;
 
    for(;;)
    {
        pos = s.find_first_of(BRACKETS, pos);
        if(pos == T_str::npos) break;
        char  bracket_cur = s[pos++];
 
        if(is_open_bracket(bracket_cur))
        {
            brackets_stack.push(bracket_cur);
        }
        else
        {
            if(brackets_stack.empty()
               || brackets_stack.top() != open_bracket_from(bracket_cur))
            {
                return false;
            }
            brackets_stack.pop();
        }       
    }   
    return  brackets_stack.empty();
}
//////////////////////////////////////////////////////////////////////////////////////
int main()
{
    std::locale::global(std::locale(""));
    std::cout << "Введите строку текста со скобками разных видов:"
              << std::endl
              << "-> ";
 
    T_str s;
    std::getline(std::cin, s);
    std::cout << "Скобки "
              << (brackets_are_correct(s) ? "" : "НЕ")
              << " корректны."
              << std::endl;
}
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru