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

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

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

Студворк — интернет-сервис помощи студентам
Разработать алгоритм и программу. Вводится последовательно 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 - список строк Дан текст из нескольких строк. Заменить в четных строках все...

33
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
08.06.2018, 19:24  [ТС]
Студворк — интернет-сервис помощи студентам
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
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
08.06.2018, 21:26
Текст ошибок.
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
08.06.2018, 22:45  [ТС]
Вот скрин
Миниатюры
Удалить во всех строках заданного текста первые вхождения введенного пользователем символа  
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
08.06.2018, 22:46  [ТС]
nmcf, nmcf, Вот скрин
Миниатюры
Удалить во всех строках заданного текста первые вхождения введенного пользователем символа  
0
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
09.06.2018, 08:58
Ну оранжевое сообщение тебе же говорит, что надо включить поддержку C++11.
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
09.06.2018, 10:45  [ТС]
как это включить?

Добавлено через 1 минуту
а можешь пожалуйста переделать этот код чтобы он через dev c++ заработал?
0
"C with Classes"
2022 / 1404 / 523
Регистрация: 16.08.2014
Сообщений: 5,885
Записей в блоге: 1
09.06.2018, 11:09
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
7804 / 6568 / 2988
Регистрация: 14.04.2014
Сообщений: 28,705
09.06.2018, 11:38
Цитата Сообщение от Aleksey6898 Посмотреть сообщение
как это включить?
Как включить в своей среде разработки поддержку определённого стандарта (С++11, С++14, С++17, C++20, C++23)
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
09.06.2018, 13:12  [ТС]
нет
0
0 / 0 / 0
Регистрация: 24.02.2017
Сообщений: 160
09.06.2018, 13:13  [ТС]
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,885
Записей в блоге: 1
09.06.2018, 13:25
Цитата Сообщение от 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  [ТС]
да, работает. Спасибо большое)
0
2493 / 1157 / 709
Регистрация: 25.04.2016
Сообщений: 3,339
09.06.2018, 16:53
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  [ТС]
Дан код программы. Помогите пожалуйста сделать так чтобы строки вводились пользователем
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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.06.2018, 18:23

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

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

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

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

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


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

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Особенности gif сгенерированных в Си
russiannick 21.10.2026
Рассмотрим генерацию gif файлов, которые в Си имеют свои особенности. Gif представляет собой графический формат популярный в интернете. Посмотрим на палитру. Gif файл сгенерированный в си отличается. . .
FPS контроллер с анимированными Y-Bot и 3D-звуком miniaudio (Box3D, Recast, BehaviorTree.CPP, ozz-animation, ImGui, OpenGL и SDL3)
8Observer8 18.10.2026
Содержание блога | English Version Полное мультиплатформенное руководство по стартовому проекту с FPS-контроллером игрока, анимированными роботами Y-Bot с 4-слойным блендингом, 3D-физикой Box3D,. . .
Локальный http сервер
Argus19 17.10.2026
Локальный http сервер На работе, на двух локальных компьютерах круглосуточно работают программы опроса приборов с записью в книги Excel,которые раз в сутки записываются на сервер компании. Т. к. . . .
Копировать Windows на новый диск на UEFI
damix 17.10.2026
https:/ / uriesk. wordpress. com/ 2016/ 11/ 01/ move-window-10-to-ssd-on-a-uefi-dualboot-system-with-basic-linux-tools/ TL DR Вставляем диск, а старый подключаем через переходник, грузимся с лайва. . .
ИИ не может найти нужный язык в списке
Supersumestria 05.10.2026
Я ему даю вот такое изображение и прошу найти и подчеркнуть немецкий язык. Возвращает он вот это: https:/ / i. **********/ vqBWLe2. png Нужную строчку в 3й колонке просто выдумал. . Это. . .
Новая последняя моя музыка в SUNO
zorxor 05.10.2026
Здравствуйте, дорогие мои друзья! С большой радостью я хотел бы представить вам свою новую последнею музыку, которую сгенерировала мне по моей просьбе нейросеть SUNO. С уважением, zorxor. Это. . .
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru