Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
-6 / 0 / 0
Регистрация: 09.11.2021
Сообщений: 39

Удалить из списка символы после каждой заглавной буквы

08.03.2022, 01:46. Показов 1016. Ответов 2

Студворк — интернет-сервис помощи студентам
Нужно создать список с символами и вводить в него элементы пока не встретиться элемент с кодом 70 и удалить из этого списка символ после каждой большой буквы. Помогите пожалуйста.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.03.2022, 01:46
Ответы с готовыми решениями:

Как удалить все символы после последней буквы?
Вот программа , она вычисляет количество слов в тексте namespace ConsoleApplication9 { class Program { static...

Удалить все символы после знака в string в каждой строке
Есть переменная типа стринг, в котором написано: hello|56214 by|78626 gg|41224 vvvv|51221 Количество строк может меняться, но...

После каждой буквы предпоследнего слова вставить символ '*'. Лишние символы (с 81-ого) отбросить
После каждой буквы предпоследнего слова вставить символ '*'. Лишние символы (с 81-ого) отбросить. Использовать string.h и указатели. ...

2
236 / 50 / 37
Регистрация: 24.01.2022
Сообщений: 137
08.03.2022, 08:17
Min-Max, вот вариант решения:

C++ (Qt)
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
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#include <initializer_list>
#include <iostream>
#include <cctype>
 
struct Node {
    char value = 0;
    Node* next = nullptr;
 
    Node() {}
    explicit Node(const char v)
        : value(v) {}
 
    ~Node() {
        if (next != nullptr) {
            delete next;
        } next = nullptr;
    }
};
 
struct LinkedList {
    Node* beg = nullptr;
    Node* end = nullptr;
 
    LinkedList() {}
    LinkedList(std::initializer_list<char> l) {
        for (auto it = std::begin(l); it != std::end(l); ++it) {
            pushBack(*it);
        }
    }
 
    void pushBack(const char v) {
        if (beg == nullptr) {
            beg = new Node(v);
            end = beg;
            return;
        }
        end->next = new Node(v);
        end = end->next;
    }
 
    size_t size() {
        size_t sz = 0;
        Node* stepNode = beg;
        while (stepNode != nullptr) {
            stepNode = stepNode->next;
            sz += 1;
        } return sz;
    }
 
    void specialRemove() {
        if (beg == nullptr) return;
        if (beg == end) return;
 
        Node* stepNode = beg;
        while (stepNode != nullptr) {
            if (std::isupper(stepNode->value) != 0) {
                Node* forRemoved = stepNode->next;
                if (forRemoved != nullptr) {
                    Node* savedNext = forRemoved->next;
                    forRemoved->next = nullptr;
                    stepNode->next = savedNext;
                    delete forRemoved;
                }
            }
            stepNode = stepNode->next;
        };
    }
 
    void writeToConsole() {
        Node* stepNode = beg;
        while (stepNode != nullptr) {
            std::cout << stepNode->value << " ";
            stepNode = stepNode->next;
        } std::cout << std::endl;
    }
 
    ~LinkedList() {
        end = nullptr;
        if (beg != nullptr) {
            delete beg;
        } beg = nullptr;
    }
};
 
int main()
{
    LinkedList linkedList;
 
    char chForEnter = 0;
    std::cout << "vals:\n";
    std::cin >> chForEnter;
    while (chForEnter != static_cast<char>(70)) {
        linkedList.pushBack(chForEnter);
        std::cin >> chForEnter;
    } std::cout << std::endl;
 
    linkedList.writeToConsole();
    std::cout << "size of list = " << linkedList.size() << "\n";
 
    linkedList.specialRemove();
 
    linkedList.writeToConsole();
    std::cout << "size of list = " << linkedList.size() << "\n";
 
    return 0;
}
Примеры вывода:
Code
1
2
3
4
5
6
7
vals:
A a B b C c E e G g g g F
 
A a B b C c E e G g g g
size of list = 12
A B C E G g g
size of list = 7
Code
1
2
3
4
5
6
7
vals:
A A b b B B c c C C e F
 
A A b b B B c c C C e
size of list = 11
A b b B c c C e
size of list = 8
0
-6 / 0 / 0
Регистрация: 09.11.2021
Сообщений: 39
11.03.2022, 23:52  [ТС]
Начала изучать с++ и не совсем понимаю как сделать задание.
задание: удалить из списка символы после каждой большой буквы. Вводить элементы, пока не встретиться символ с кодом 70.
Помогите пожалуйста.
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
#include <iostream>
#include <cctype>
 
using namespace std;
struct Node
{
    char data = 0;
    Node * next;
};
void Add_Node(Node*&head,Node*&end,char x)
{
    Node* c = new Node;
    c->next = NULL;
   c->data = x;
    if(head==NULL)
    {
        head = c; end = c;
        end = c;
    }
}
 
void Print_List(Node* head)
{
    cout << "Список:" << endl;
    Node* c = head;
    while (c != NULL)
    {
        cout << c->data << "";
        c = c->next;
    }
    cout << endl;
}
 
void deleteNode(Node*& head, Node*& end, char ch)
{
    Node* prev = head, * tmp=NULL;
    if(prev!=NULL&&prev->data==ch)
    {
        prev->next = tmp->next;
        delete tmp;
    }
    while(prev!=NULL&&prev->data!=ch)
    {
        prev = tmp;
        tmp = tmp->next;
    }
    if (prev == NULL) return;
}
 
void Free_Memory(Node*head)
{
    Node* c = head;
    while (c != NULL)
    {
        head = head->next;
        delete c;
        c = head;
    }
}
//Cимвол с 70 кодом - F
int main()
{   
    setlocale(LC_ALL, "rus");
    Node* head = NULL, * end = NULL, * c = NULL;
    char x;
    cout << "Введите список(чтобы закончить вводить список введите 'F')" << endl;
    while (c->data != static_cast<char>(70))
    {
        cin >> x;
        Add_Node(head, end, x);
    }
    Print_List(head);
    Node* prev = head;
    cout << "Список с удалёнными элементами:" << endl;
 
    deleteNode(head, end, x);
    Print_List(head);
    Free_Memory(head);
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.03.2022, 23:52
Помогаю со студенческими работами здесь

Удалить слова которые начинаются с заглавной буквы
Есть текстовый файл в котором ~70 тыс. слов. Нужно удалить все слова которые начинаются с заглавной буквы. Все слова записаны просто через...

Строки и символы. Преобразовать строку так, чтобы каждое слово начиналось с заглавной буквы
Дана строка-предложение на русском языке. Преобразовать строку так, чтобы каждое слово начиналось с заглавной буквы. Словом считать набор...

Удалить все цифры из файла, а после каждой буквы поставить следующую по алфавиту
Народ помогите! Как можно иначе написать такую же программу? Если нужны пояснения к процедурам, пишите поясню. Программа: удаляет все...

Удалить из сообщения все слова, начинающиеся с заглавной буквы
Решите пожалуйста, завтра необходимо сдать. Удалить из сообщения все слова, начинающиеся с заглавной буквы.

Удалить из сообщения все слова, начинающиеся с заглавной буквы
Вот код,для нахождения слов с заглавной буквы,а вот удалить не придумал как,знаю,что вроде с помощью операции s.erase(i,n) #include...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru