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

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

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

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

11.03.2013, 18:07. Просмотров 294. Ответов 0
Метки нет (Все метки)

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

задача 6 очередь
В файле input.txt содержатся символы создать из этих символов список. Удалить каждое последующее вхождение символа если он встречался до этого.

input
Код
( ( ( крат крит
Код программы
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
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
#include <iostream>
#include <fstream>
using namespace std;
 
class queue
{
    struct elem
    {
        char inf;
        elem *next;
        elem (unsigned char x, elem *p):inf(x), next(p){};
    };
    elem *head, *tail;
public:
    queue(){head=0; tail=0;}
    bool empty()
    {
        return tail==0;
    }
    void insert(unsigned char value)
    {
        elem *newptr=new elem(value, 0);
        if(head==0&&tail==0)
            head=tail=newptr;
        else
        {
            tail->next=newptr;
            tail=newptr;
        }
        cout<<head->inf<<' '<<tail->inf<<endl;
    }
    char take()
    {       //if(head==0)
            //tail=0;
        elem *r=head;
        unsigned char i=r->inf;
        head=r->next;
        if(head==0)
            tail=0;
        delete r;
        return i;
    }
 
};
 
int main()
{
    queue t;
    unsigned char n;
    int a[255];
    ifstream in("input.txt");
    ofstream out("output.txt");
    for(int i=0;i<n; i++)
    {
        a[i]=0;
    }
    queue m;
    while(in>>n)
    {
        t.insert(n);
    }
    unsigned char j;
    if(t.empty()==true) out<<"net elementov v ocheredy t"<<endl;
    else
    { out<<"elemety ocheredy t"<<endl;
    while(!t.empty())
    {
        j=t.take();
        out<<j<<' ';
        if(a[j]==j)
        {
            m.insert(j);
            //a[j]=" ";
        }
    }
    }
    out<<endl;
    if(m.empty()==true) out<<"net elementov v ocheredy m";
    else
    { out<<"elementy ocheredy m"<<endl;
        while(!m.empty())
        {
            out<<m.take()<<" ";
        }
    }
    system("PAUSE");
    return 0;
}

Output:
Код
elemety ocheredy t
( ( ( к р а т к р и т 
elementy ocheredy m
( к р а т и
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 18:07
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Очередь. Удалить каждое последующее вхождение символа если он встречался до этого. (C++):

Удвоить каждое вхождение символа С в строку S - C++
Дана строка S и символ С. Удвоить каждое вхождение символа С в строку S.

Удвоить каждое вхождение символа C в строку S - C++
Дана строка S и символ C. Удвоить каждое вхождение символа C в строку S. Помогите плиз написать программу с помощью функций.

Удвоить каждое вхождение символа в строке - C++
Дана строка s и c символ . Удвойте каждое вхождение символа c в строке s подскажите пожалуйста как решить. Добавлено через 10 минут ...

Дан символ C и строка S .Удвоить каждое вхождение символа С в строку S - C++
Обработка символьных массивов с помощью указателей: Дан символ C и строка S .Удвоить каждое вхождение символа С в строку S Для...

Заменить каждое вхождение <i> на <курсив>, а каждое вхождение </i> на <конец курсивах> - C++
Тэг курсива. Дан текст, в котором встречаются структуры &lt;i&gt; и &lt;/i&gt;. Заменить каждое вхождение &lt;i&gt; на &lt;курсив&gt;, а каждое вхождение &lt;/i&gt;...

Удалить из строки каждое вхождение подстроки - C++
Удалить из строки s каждое вхождение подстроки s1. На С++ Дублирование тем запрещено правилами форума (п. 3.4). Не плодите...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.03.2013, 18:07
Привет! Вот еще темы с ответами:

Как скопировать подстроку из строки до определенного символа? Или удалить, начиная с этого символа - C++
Добрый вечер. Ответ искал, но не нашёл. Предположим, есть строка: ABC|DEF Надо скопировать всё до | , т.е., в приведённом...

Из файла ввести слово и найти в нём последнее вхождение заданного символа, если он есть - C++
Из файла ввести слово и найти в нём последнее вхождение заданного символа, если он есть. Выдать соответствующее текстовое сообщение и...

В предложении удалить первое вхождение “w”, если такое есть - C++
Как можно выполнить это задание с помощью строк?? В предложении удалить первое вхождение “w”, если такое есть. Образовавшуюся “дыру”...

Определить последнее вхождение символа “р” в строке и вывести строку, начиная с первого символа и до последнего “р” в строке - C++
Заданы 2 строки, состоящие из слов, разделенных пробелами. Определить последнее вхождение символа “р” в строке и вывести строку, начиная с...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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