Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.54/26: Рейтинг темы: голосов - 26, средняя оценка - 4.54
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534

Удалить из каждой строки последовательность символов заключённую между двумя очередными появлениями заданного символа

20.05.2021, 13:10. Показов 5813. Ответов 65
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Составить программу обработки массива символов с помощью указателей, которая вводит текст из произвольного количества строк, а затем удаляет из каждой строки последовательность символов, заключённую между двумя очередными появлениями заданного символа, и выводит полученный результат. Обработку строки текста оформить как функцию.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
20.05.2021, 13:10
Ответы с готовыми решениями:

Исключить последовательность символов, заключенную между двумя определенными символами
.исключить последовательность символов заключенную между двумя определенными символами

Из заданного текста удалить последовательность символов между двумя апострофами
Из заданного текста удалить последовательность символов, расположенных между двумя апострофами. Помогите пожалуйста

Дано предложение. Исключить последовательность символов, заключенную между двумя определенными символами
Дано предложение. Исключить последовательность символов, заключенную между двумя определенными символами.

65
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
26.05.2021, 12:18  [ТС]
Студворк — интернет-сервис помощи студентам
Volga_, нужно только без n =

Добавлено через 48 секунд
Volga_, без ввода количества строк нужно

Добавлено через 3 минуты
Volga_, пожалуйста помоги

Добавлено через 2 минуты
Volga_, mà không cần nhập số dòng bạn cần
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
26.05.2021, 12:19
Цитата Сообщение от goodrogrammer Посмотреть сообщение
без ввода количества строк нужно
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
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;
 
char* f(char* str, char symbol)
{
    int len = strlen(str);
    int* ind = new int[len];
    char* ret = new char[len + 1];
    if (ret == NULL)
        return NULL;
    int size = 0, i;
    for (i = 0; i < len; i++)
        if (str[i] == symbol)
        {
            ind[size] = i;
            size++;
        }
    if (size == 0 || size == 1)
    {
        strncpy(ret, str, len + 1);
    }
    else
    {
        int j = 0;
        for (i = 0; i < len; i++)
            if (i<ind[0] || i>ind[size - 1])
                ret[j++] = str[i];
            else
            {
                int k;
                for (k = 0; k < size; k++)
                    if (i == ind[k])
                        ret[j++] = symbol;
            }
        ret[j] = '\0';
    }
    delete[] ind;
    return ret;
}
 
int main()
{
    char str[100];
    cout << "Enter string: ";
    cin.getline(str, sizeof(str));
 
    char symbol;
    cout << "Enter symbol: ";
    cin >> symbol;
 
    char* pch = strtok(str, " ");
    while (pch != NULL)
    {
        char* ret = f(pch, symbol);
        if (ret)
        {
            cout << ret << endl;
            delete[] ret;
        }
        pch = strtok(NULL, " ");
    }
    return 0;
}
2
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
26.05.2021, 12:29  [ТС]
Volga_, cin.getline(str, sizeof(str)); без этого можно, по другому плиз
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
26.05.2021, 12:31
Цитата Сообщение от goodrogrammer Посмотреть сообщение
cin.getline(str, sizeof(str)); без этого можно, по другому плиз
Заменяйте ее на gets(str);.
1
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
26.05.2021, 12:32  [ТС]
Volga_, что является концом строки?
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
26.05.2021, 12:35
Цитата Сообщение от goodrogrammer Посмотреть сообщение
что является концом строки?
Ой, что правило написания на языке Си/Си++ ? Конечно "запятая точки" (.
C++
1
gets(str);
1
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
26.05.2021, 12:36  [ТС]
Volga_, được rồi, cảm ơn rất nhiều vì sự giúp đỡ
1
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
26.05.2021, 12:52
Цитата Сообщение от goodrogrammer Посмотреть сообщение
cin.getline(str, sizeof(str)); без этого можно, по другому плиз
Чему вас там учат? gets уже лет семь как выпилили, а у вас норм?

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
#include <iostream>
#include <string>
#include <sstream>
#include <algorithm>
 
std::string foo(std::string str, char val)
{
    size_t left = str.find(val);
    if(left == str.npos) return str;
    size_t right = str.rfind(val);
    size_t cnt = std::count(str.begin(), str.end(), val);
    std::string res = str.substr(0, left) + std::string(cnt, val) + str.substr(right + 1);
 
    return res;
}
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::stringstream ss(str);
 
    char x = 0;
    std::cin >> x;
 
    while(ss >> str) std::cout << foo(str, x) << "\n";
 
    system("pause");
    return 0;
}
2
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
26.05.2021, 13:01
Цитата Сообщение от goodrogrammer Посмотреть сообщение
с помощью указателей
Я был ограничен этим условием, поэтому не смогу делать другой хотя придумал об варианте, в котором использован std::string как ты сделал (это именно твой прекрасный вариант). Сейчас все ок.
2
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
26.05.2021, 16:04  [ТС]
Volga_, А с sin.get можете написать?
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
26.05.2021, 16:07
Цитата Сообщение от goodrogrammer Посмотреть сообщение
А с sin.get можете написать?
Зачем нужно ?
1
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
26.05.2021, 16:08  [ТС]
Volga_, препод сказал, что он не знает то чего написано у Вас в программе, но сказал нужен ему sin.get

Добавлено через 24 секунды
Volga_, он не знает как сейчас всё пишется по новому, он нас учит по старому
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
26.05.2021, 16:10
goodrogrammer, не знаю на что поменять cin.get !
1
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
26.05.2021, 16:11  [ТС]
Volga_, вместо gets(str), нужно написать sin.get, вроде так
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
26.05.2021, 16:12
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
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <cstring>
using namespace std;
 
char* f(char* str, char symbol)
{
    int len = strlen(str);
    int* ind = new int[len];
    char* ret = new char[len + 1];
    if (ret == NULL)
        return NULL;
    int size = 0, i;
    for (i = 0; i < len; i++)
        if (str[i] == symbol)
        {
            ind[size] = i;
            size++;
        }
    if (size == 0 || size == 1)
    {
        strncpy(ret, str, len + 1);
    }
    else
    {
        int j = 0;
        for (i = 0; i < len; i++)
            if (i<ind[0] || i>ind[size - 1])
                ret[j++] = str[i];
            else
            {
                int k;
                for (k = 0; k < size; k++)
                    if (i == ind[k])
                        ret[j++] = symbol;
            }
        ret[j] = '\0';
    }
    delete[] ind;
    return ret;
}
 
int main()
{
    char str[100];
    cout << "Enter string: ";
    cin.get(str, sizeof(str));
 
    char symbol;
    cout << "Enter symbol: ";
    cin >> symbol;
 
    char* pch = strtok(str, " ");
    while (pch != NULL)
    {
        char* ret = f(pch, symbol);
        if (ret)
        {
            cout << ret << endl;
            delete[] ret;
        }
        pch = strtok(NULL, " ");
    }
    return 0;
}
1
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
26.05.2021, 21:52  [ТС]
Volga_, спасибо за программу, попозже попробую

Добавлено через 5 часов 39 минут
Volga_, Подскажите зачем нужен NULL? Для того чтобы к нему присваивать 0?
0
Модератор
Эксперт CЭксперт С++
 Аватар для Volga_
5209 / 2927 / 1509
Регистрация: 14.12.2018
Сообщений: 5,267
Записей в блоге: 1
26.05.2021, 22:03
Цитата Сообщение от goodrogrammer Посмотреть сообщение
NULL
Правильнее будет nullptr. Это пустой указатель. Вы сможете понять его в документах (много в интернете). Я не хватает русский для объяснения.
1
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
26.05.2021, 22:23  [ТС]
Volga_, хорошо я понял
0
40 / 44 / 1
Регистрация: 19.01.2021
Сообщений: 534
27.05.2021, 13:13  [ТС]
Volga_, нужно чтобы в программе текст соответствовал ответу
0
Гвоздь Задиров
 Аватар для Folian
1719 / 1118 / 337
Регистрация: 25.01.2019
Сообщений: 2,946
27.05.2021, 13:18
goodrogrammer, А ты сам ничего делать не собираешься?
2
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
27.05.2021, 13:18

Из заданного текста удалить последовательность символов, расположенных между двумя парными двоеточиями
Пожалуйста, помогите решить задачу:Из заданного текста удалить последовательность символов, расположенных между двумя парными двоеточиями.

Из строки удалить последовательность символов, расположенных между двумя запятыми
Из строки удалить последовательность символов, расположенных между двумя запятыми (считается, что в строке ровно две запятые); Помогите...

Удалить последовательность символов, расположенных между двумя запятыми
Задача такова: Удалить последовательность символов, расположенных между двумя запятыми. До этого у меня была задача со скобками, но...

Из текста удалить последовательность символов, расположенных между двумя парными двоеточиями
Пожалуйста, помогите решить задачу:Из заданного текста удалить последовательность символов, расположенных между двумя парными двоеточиями.

Исключить последовательность символов, заключенную между круглыми скобками
Дано предложение. Исключить последовательность символов, заключенную между круглыми скобками. Результат отобразить на экране.


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

Или воспользуйтесь поиском по форуму:
60
Ответ Создать тему
Новые блоги и статьи
После бана на Пикабу не работает авторизация аккаунта с Яндекса.
Hrethgir 09.07.2026
В частности https:/ / auto. ru/ logbook/ zapret-na-vozhdenie-posle-65-let_1cf28789-07b4-4c75-a2f7-4cd4edf9deeb тут хотел оставить комментарий такой Зрите в корень - монополизация на разработку программ. . .
GitDOS: Когда я решил скрестить MS-DOS, GitHub и Claude
MaGz GoLd 08.07.2026
Привет, Киберфорум! Хочу поделиться своим проектом, который, надеюсь, вас заинтересует. GitDOS — это веб-приложение, которое позволяет запускать DOS в браузере с тремя крутыми фичами: диски живут в. . .
Учебный мини "цифровой двойник" = (Сервер = Java + Flask_питон )+(3D = Гугловскаая 4T nvideo + google colab) +( WMS = Odoo на Docker)
anaschu 07.07.2026
Увидел в требованиях к вакансии создателя имитационных моделей связку (REst + Api + WMS + Anylogic + питон + 3D Nvideo), и решил посмотреть, что это такое. Из этого всего я работал более менее. . .
Море в объективе
kumehtar 06.07.2026
Хотел написать много проникновенных слов, но передумал. Оно само - говорит. Кто слышит тот слышит.
Doom для терминала без стрельбы и монстров. 3D Raycasting на ascii.
dcc0 05.07.2026
Попросил нейронную сеть deepai. org написать рейкастинг 3D с библиотекой ncurses для Linux. Чтобы можно было ходить на стрелочки. Чтобы стены были отрисованы символами. Справилась. Первый вариант. . .
Установка статуса документа по условию
Maks 05.07.2026
Алгоритм из решения ниже реализован на нетиповом документе "НарядПутевка" разработанного в КА2. Задача: в табличной части "Материалы" документа при записи автоматически устанавливать статус. . .
Сезонность и суточность закисления почв
anaschu 04.07.2026
200 часов это все равно моловато. Есть ситуации, но нестандартные, когда смена происходит за 5 лет. Но обычно это 50 лет и более. Наверное, закисление почвы происходит сезонно в средней. . .
В чем ценность человеческого опыта в глобальном смысле?
kumehtar 03.07.2026
Возможно, ценность человека не в том, что он однажды достигает мудрости, а в том, что он становится носителем карты пути. Он знает не только истину, но и последовательность внутренних изменений,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru