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

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

Войти
Регистрация
Восстановить пароль
 
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
#1

АТД список. Выделить скобками все двойные вхождения символов - C++

29.09.2011, 20:07. Просмотров 341. Ответов 2
Метки нет (Все метки)

Здравствуйте.

Суть задачи такова.


Нужно выделить круглыми скобками все двойные вхождения заданного символа.


Например

Есть список g c c f c c c, пользователь задал символ "с" в итоге на выходе программы должен получиться список (g ( c c ) f ( c c ) c).

Как видите в выходном списке взяты в скобки двойной символ "с".


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
#include "iostream"
#include "list"
 
 
using std::list;
using std::cout;
using std::cin;
 
int _tmain(int argc, _TCHAR* argv[])
{
    setlocale(0,"");//руский щрифт в консоле
    
    int n;
    char num;
    
    list<char> l; //объявили список
    
    cout << "Введите длину списка: ";
    cin >> n;
 
    cout << "Введите содержимое списка: ";
    for(int i = 0; i < n; i++)
    {   
        cin >> num;
        l.push_back(num);
    }
 
    
    //тут выполнить определенное действие
    
    
    cout << "Вывод искомого списка: ";
    for(list<char>::const_iterator iter1 = l.begin(); iter1 != l.end(); iter1++)
    {
        cout << *iter1  << ",";
    }
           
    system("pause >> NULL");
    return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.09.2011, 20:07     АТД список. Выделить скобками все двойные вхождения символов
Посмотрите здесь:

Выделить все вхождения подстрок, заключенных в скобки - C++
Выдали задание по учебной практике, 1-ый курс учусь,пока с программированием туго. Помогите описать функцию работы со строкой...

Удалить в строке символов все символы в скобках вместе с самими скобками - C++
Текст задачи такой: Даны натуральное число n, символы s_1, … , s_n. Исключить из последовательности s_1, … , s_n группы символов,...

Пересчитать числа вхождения символов в строке – поправить список - C++
Пересчитать числа вхождения символов в строке – поправить список. с помощью двусвязного списка

Удалить все вхождения символов из строки - C++
как удалить вхождение всех точек в строку, стандартными средствами, без цикла написанного вручную. Я сделал так но это не правильно find...

Строка символов. Все вхождения ‘abc’ заменить на ‘def’ - C++
Дана строка символов. Необходимо все вхождения ‘abc’ заменить на ‘def’

Как с помощью цикла проверить все вхождения символов? - C++
Как с помощью цикла проверить все вхождения символов и если какой-то из символов входит более одного раза (изначально мы не знаем какой...

Стек. Выведите все вхождения символов указанного набора в текст в обратном порядке - C++
Дан текст, состоящий из заглавных и строчных английских букв, символов ! ; ? . , - : ; ) ( ' &quot; и пробелов. Выведите все...

Заменить в последовательности символов после первого вхождения знака ‘+’ все цифры на символ – - C++
Заменить в последовательности символов после первого вхождения знака ‘+’ все цифры на символ – .

Сформировать непустой список L по принцепу стека. Удалить из списка L все вхождения элемента E - C++
Сформировать непустой список L по принцепу стека. Удалить из списка L все вхождения элемента E. Вывести список до и после изменений....

Дана строка символов. Выделить в ней цветом все символы - C++
Прошу помочь создать данную программу: Дана строка символов. Выделить в ней цветом все символы, не являющиеся буквами.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
xAtom
914 / 739 / 60
Регистрация: 09.12.2010
Сообщений: 1,346
Записей в блоге: 1
29.09.2011, 20:52     АТД список. Выделить скобками все двойные вхождения символов #2
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
#include <iostream>
#include <list>
#include <algorithm>
using namespace std;
 
int main () {
   list<char>  lst;
   list<char>  lch(2);
 
   char* str = "gcccfcccxx,ccycccc";
   lst.insert(lst.begin(), str, str + strlen(str));
   
   char ch = 'c';
   // cin >> ch;
   fill(lch.begin(), lch.end(), ch);
   
   list<char>::iterator last, iter = lst.begin();
   while((iter = search(iter, lst.end(), lch.begin(), lch.end())) != lst.end()) {
        lst.insert(iter, '(');
        last = iter; 
        for(size_t n = lch.size(); last != lst.end() && n > 0u; *last++, n--);
        lst.insert(last, ')');
        if(last == lst.end()) 
                break;
        iter = last;
   }
 
   copy(lst.begin(), lst.end(), ostream_iterator<char>(cout, " "));
   cout.put('\n');
   lst.clear();
   cin.get();
   return 0;
}
Infinity3000
1058 / 577 / 24
Регистрация: 03.12.2009
Сообщений: 1,255
29.09.2011, 21:06  [ТС]     АТД список. Выделить скобками все двойные вхождения символов #3
xAtom, не подскажешь хорошую литературу по АТД спискам??
Yandex
Объявления
29.09.2011, 21:06     АТД список. Выделить скобками все двойные вхождения символов
Ответ Создать тему
Опции темы

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