Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.54/13: Рейтинг темы: голосов - 13, средняя оценка - 4.54
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
1

Удалить во всех строках заданного текста первые вхождения введенного пользователем символа

12.04.2018, 20:45. Показов 2401. Ответов 33
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Разработать алгоритм и программу. Вводится последовательно N строк (1<=N<=20), длина которых не должна превышать 20 символов. Строки должны состоять из заглавных и строчных латинских букв. Выполнить следующие преобразования:
- удалить во всех строках первые вхождения введенного пользователем символа;
- во всех строках добавить после указанного пользователем символа символ, введенный пользователем.
 Комментарий модератора 
П.5.16.Правил
Запрещено создавать темы с множеством вопросов во всех разделах, кроме разделов платных услуг. Один вопрос - одна тема.

Вывести результаты преобразований.

Помогите пожалуйста с этой задачей. У меня получается только ввести строку, а дальше не идет. Еще желательно нарисовать от руки блок схему, не обязательно аккуратно
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.04.2018, 20:45
Ответы с готовыми решениями:

Найти индекс последнего вхождения символа, введённого пользователем, в заданную строку
Уважаемые форумчане. Помогите, пожалуйста, написать программу по следующему условию: пользователь...

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

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

Заменить в четных строках текста все вхождения символа 'a' на 'b', а в нечетных наоборот
Дан текст из нескольких строк. Заменить в четных строках все вхож-дения символа 'a' на 'b', а в...

33
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
08.06.2018, 19:24  [ТС] 21
Author24 — интернет-сервис помощи студентам
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
#include <iostream>
#include <string>
#include <vector>
 
 
int main()
{
    std::vector<std::string> vct // вектор строк
    {
        "cv awa cvw",
        "sd swd sd",
        "wagh gh",
        "Jk Jk wa",
        "aa",
        "ww",
    };
    char c1 = 'a'; // удалить первое вхождение c1
    char c2 = 'w', c3 = 'Y'; // после c2 вставить c3  
    for (auto& str : vct)
    {
        // удаление
        std::string::size_type ind = str.find(c1);
        if (ind != std::string::npos)
        {
            str.erase(ind, 1);
        }
 
        // вставка
        for (ind = str.find(c2); ind != std::string::npos; ind = str.find(c2, ind + 2))
        {
            str.insert(ind + 1, 1, c3);
        }
        
        std::cout << str << std::endl;
    }
}
Через dev c++ не работает. Помогите пожалуйста

а это текст задачи:
Разработать программу. Вводится последовательно N строк (1<=N<=20), длина которых не должна превышать 20 символов. Строки должны состоять из заглавных и строчных латинских букв. Выполнить следующие преобразования:
- удалить во всех строках первые вхождения введенного пользователем символа;
- во всех строках добавить после указанного пользователем символа символ, введенный пользователем.
Вывести результаты преобразований.
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.06.2018, 21:26 22
Текст ошибок.
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
08.06.2018, 22:45  [ТС] 23
Вот скрин
Миниатюры
Удалить во всех строках заданного текста первые вхождения введенного пользователем символа  
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
08.06.2018, 22:46  [ТС] 24
nmcf, nmcf, Вот скрин
Миниатюры
Удалить во всех строках заданного текста первые вхождения введенного пользователем символа  
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
09.06.2018, 08:58 25
Ну оранжевое сообщение тебе же говорит, что надо включить поддержку C++11.
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
09.06.2018, 10:45  [ТС] 26
как это включить?

Добавлено через 1 минуту
а можешь пожалуйста переделать этот код чтобы он через dev c++ заработал?
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,884
Записей в блоге: 1
09.06.2018, 11:09 27
Aleksey6898, так работает?
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
#include <iostream>
#include <string>
#include <vector>
 
 
int main()
{
    std::vector<std::string> vct // вектор строк
    {
        "cv awa cvw",
        "sd swd sd",
        "wagh gh",
        "Jk Jk wa",
        "aa",
        "ww",
    };
    char c1 = 'a'; // удалить первое вхождение c1
    char c2 = 'w', c3 = 'Y'; // после c2 вставить c3  
    for (std::size_t i = 0; i < vct.size(); ++i)
    {
        // удаление
        std::string::size_type ind = vct[i].find(c1);
        if (ind != std::string::npos)
        {
            vct[i].erase(ind, 1);
        }
 
        // вставка
        for (ind = vct[i].find(c2); ind != std::string::npos; ind = vct[i].find(c2, ind + 2))
        {
            vct[i].insert(ind + 1, 1, c3);
        }
        
        std::cout << vct[i] << std::endl;
    }
}
0
7803 / 6567 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
09.06.2018, 11:38 28
Цитата Сообщение от Aleksey6898 Посмотреть сообщение
как это включить?
Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
09.06.2018, 13:12  [ТС] 29
нет
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
09.06.2018, 13:13  [ТС] 30
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
#include <iostream>
#include <string>
#include <vector>
 
 
int main()
{
    std::vector<std::string> vct // вектор строк
    {
        "cv awa cvw",
        "sd swd sd",
        "wagh gh",
        "Jk Jk wa",
        "aa",
        "ww",
    };
    char c1 = 'a'; // удалить первое вхождение c1
    char c2 = 'w', c3 = 'Y'; // после c2 вставить c3  
    for (std::size_t i = 0; i < vct.size(); ++i)
    {
        // удаление
        std::string::size_type ind = vct[i].find(c1);
        if (ind != std::string::npos)
        {
            vct[i].erase(ind, 1);
        }
 
        // вставка
        for (ind = vct[i].find(c2); ind != std::string::npos; ind = vct[i].find(c2, ind + 2))
        {
            vct[i].insert(ind + 1, 1, c3);
        }
        
        std::cout << vct[i] << std::endl;
    }
}
Чтобы работал через dev c++
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,884
Записей в блоге: 1
09.06.2018, 13:25 31
Цитата Сообщение от Aleksey6898 Посмотреть сообщение
нет
а так
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
#include <iostream>
#include <string>
#include <vector>
 
 
int main()
{
    std::vector<std::string> vct; // вектор строк
 
    vct.push_back("cv awa cvw");
    vct.push_back("sd swd sd");
    vct.push_back("wagh gh");
    vct.push_back("Jk Jk wa");
    vct.push_back("aa");
    vct.push_back("ww");
 
    char c1 = 'a'; // удалить первое вхождение c1
    char c2 = 'w', c3 = 'Y'; // после c2 вставить c3  
    for (std::size_t i = 0; i < vct.size(); ++i)
    {
        // удаление
        std::string::size_type ind = vct[i].find(c1);
        if (ind != std::string::npos)
        {
            vct[i].erase(ind, 1);
        }
 
        // вставка
        for (ind = vct[i].find(c2); ind != std::string::npos; ind = vct[i].find(c2, ind + 2))
        {
            vct[i].insert(ind + 1, 1, c3);
        }
        
        std::cout << vct[i] << std::endl;
    }
}
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
09.06.2018, 14:53  [ТС] 32
да, работает. Спасибо большое)
0
2489 / 1147 / 707
Регистрация: 25.04.2016
Сообщений: 3,294
09.06.2018, 16:53 33
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
#include <stdio.h>
 
int find_sym (char * s, char c)
{   /* находит позицию заданного символа в строке, если символа нет, вернет -1 */
    int i;
    for (i=0; s[i]; i++)
        if (s[i] == c) return i;
    return -1;
}
 
int main (void)
{
    char s[6][30] = {
        "cv awa cvw",
        "sd swd sd",
        "wagh gh",
        "Jk Jk wa",
        "aa",
        "ww"
    };
    char s1[30];                // вспомогательная строка
    char c1 = 'a';              // удалить первое вхождение с1
    char c2 = 'w', c3 = 'Y';    // после с2 вставить с3
 
    int i, k, m, pos;
    for (i = 0; i < 6; ++i)
    {
        // удаление:
        if ((pos = find_sym(s[i], c1)) >= 0)
            for (k=pos; s[i][k]; k++)
                s[i][k] = s[i][k+1];
 
        // вставка:
        if ((pos = find_sym(s[i], c2)) >= 0)        // находим позицию заданного символа
        {
            for (k=0; k<30; k++)                    // стираем вспомогательную строку
                s1[k] = '\0';
            for (k=0; k<=pos; k++)
                s1[k] = s[i][k];                    // переписываем строку до символа в вспомогательную
            s1[k++] = c3;                           // вставляем новый символ в вспомогательную
            for (m=pos+1; s[i][m]; m++)             // переписываем строку после символа в вспомогательную
                s1[k++] = s[i][m];
            s1[k] = '\0';
            for (k=0; s1[k]; k++)                   // копируем вспомогательную строку на место текущей
                s[i][k] = s1[k];
            s[i][k] = '\0';
        }
 
        printf("%s\n", s[i]);
    }
    return 0;
}
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
09.06.2018, 18:23  [ТС] 34
Дан код программы. Помогите пожалуйста сделать так чтобы строки вводились пользователем
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
#include <stdio.h>
 
int find_sym (char * s, char c)
{   /* находит позицию заданного символа в строке, если символа нет, вернет -1 */
    int i;
    for (i=0; s[i]; i++)
        if (s[i] == c) return i;
    return -1;
}
 
int main (void)
{
    char s[6][30] = {
        "cv awa cvw",
        "sd swd sd",
        "wagh gh",
        "Jk Jk wa",
        "aa",
        "ww"
    };
    char s1[30];                // вспомогательная строка
    char c1 = 'a';              // удалить первое вхождение с1
    char c2 = 'w', c3 = 'Y';    // после с2 вставить с3
 
    int i, k, m, pos;
    for (i = 0; i < 6; ++i)
    {
        // удаление:
        if ((pos = find_sym(s[i], c1)) >= 0)
            for (k=pos; s[i][k]; k++)
                s[i][k] = s[i][k+1];
 
        // вставка:
        if ((pos = find_sym(s[i], c2)) >= 0)        // находим позицию заданного символа
        {
            for (k=0; k<30; k++)                    // стираем вспомогательную строку
                s1[k] = '\0';
            for (k=0; k<=pos; k++)
                s1[k] = s[i][k];                    // переписываем строку до символа в вспомогательную
            s1[k++] = c3;                           // вставляем новый символ в вспомогательную
            for (m=pos+1; s[i][m]; m++)             // переписываем строку после символа в вспомогательную
                s1[k++] = s[i][m];
            s1[k] = '\0';
            for (k=0; s1[k]; k++)                   // копируем вспомогательную строку на место текущей
                s[i][k] = s1[k];
            s[i][k] = '\0';
        }
 
        printf("%s\n", s[i]);
    }
    return 0;
}
0
09.06.2018, 18:23
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2018, 18:23
Помогаю со студенческими работами здесь

Удалить из строки все вхождения заданного символа
Всем привет) Есть программа, которая не совсем корректно работает. Суть ее в том ,что из консоли мы...

Удалить из строки все вхождения заданного символа
Здравствуйте, Форумчане! У меня с++ кобенится String ^s3=&quot;.&quot;, ^s4; name-&gt;Replace(s3,s4); ...

Удалить из строки все вхождения заданного символа
12. Преобразовать заданную строку следующим образом: удалить из строки все вхождения заданного...

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


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Элементы алгоритмизации
hw_wired 28.01.2025
Основы алгоритмизации В современном мире алгоритмы играют фундаментальную роль в развитии информационных технологий и программирования. Понимание основ алгоритмизации является ключевым элементом в. . .
Человек и информация
hw_wired 28.01.2025
Введение: роль информации в познании мира В современном мире информация играет фундаментальную роль в процессе познания окружающей действительности. Она представляет собой совокупность сведений об. . .
Компьютер и информация
hw_wired 28.01.2025
Эволюция вычислительных машин История развития вычислительной техники начинается задолго до появления первых электронных устройств. Человечество всегда стремилось упростить процесс вычислений и. . .
Информационные технологии
hw_wired 28.01.2025
Введение в современные технологии работы с информацией В современном мире информационные технологии стали неотъемлемой частью практически всех сфер человеческой деятельности. Они существенно. . .
Информация вокруг нас
hw_wired 28.01.2025
Основные понятия информации В современном мире понятие информации является фундаментальным и охватывает практически все сферы человеческой деятельности. Информация представляет собой совокупность. . .
Компьютер для начинающих
hw_wired 28.01.2025
Введение в мир компьютерных технологий В современном мире информация стала одним из важнейших ресурсов человечества, определяющим развитие общества и технологий. Наша жизнь неразрывно связана с. . .
[golang] 189. Rotate Array
alhaos 28.01.2025
Повороты рукоятки, целочисленный слайс нужно сдвинуть на целое положительное число. Мне очень нравится решение на GO / / https:/ / leetcode. com/ studyplan/ top-interview-150/ package topInterview . . .
КуМир: решение задач на матрицы
bytestream 28.01.2025
КуМир представляет собой среду для обучения программированию, которая включает в себя мощные инструменты для работы с матрицами. Матрица в программировании - это двумерный массив, состоящий из. . .
КуМир: решение задач на строки
bytestream 28.01.2025
В системе программирования КуМир работа со строковыми данными является одним из важнейших аспектов создания программ. Строки представляют собой последовательности символов, заключенные в кавычки,. . .
КуМир: решение геометрических задач
bytestream 28.01.2025
Программирование геометрических задач в среде КуМир становится всё более актуальным в обучении школьников и студентов. КуМир — это разработанная в России обучающая программная среда, предназначенная. . .
КуМир, исполнитель Водолей: Задачи и решения
bytestream 28.01.2025
КуМир — это образовательная среда для обучения программированию. Она предлагает пользователям разнообразные инструменты для разработки и отладки программ, что особенно ценно для студентов и. . .
КуМир, исполнитель Чертежник: Решение задач
bytestream 28.01.2025
КуМир (Комплект Учебных МИРов) представляет собой образовательную среду для обучения основам программирования и алгоритмизации. Исполнитель Чертежник работает на координатной плоскости, где может. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru