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

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

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

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

11.03.2013, 18:07. Просмотров 274. Ответов 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
( к р а т и
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.03.2013, 18:07     Очередь. Удалить каждое последующее вхождение символа если он встречался до этого.
Посмотрите здесь:

C++ Из файла ввести слово и найти в нём последнее вхождение заданного символа, если он есть
C++ Удалить из строки каждое вхождение подстроки
Удвоить каждое вхождение заданной буквы в строке C++
C++ Ввести строку символов, если ее длина четная, удалить 2 первых и 2 последних символа.
Удвоить каждое вхождение символа С в строку S C++
C++ Заменить в тексте каждое вхождение...
Удвоить каждое вхождение символа в строке C++
В предложении удалить первое вхождение “w”, если такое есть C++
C++ Дан символ C и строка S .Удвоить каждое вхождение символа С в строку S
C++ Заменить каждое вхождение <i> на <курсив>, а каждое вхождение </i> на <конец курсивах>
Преобразовать каждое слово в тексте: если слово нечётной длины, то удалить его среднюю букву C++
C++ Заменить в числе каждое вхождение одной цифры на другую

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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