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

Вставка заданной подстроки в строку после первого вхождения заданного символа

28.11.2022, 17:34. Показов 790. Ответов 1

Студворк — интернет-сервис помощи студентам
Нужно вставить подстроку в строку после заданного символа функцией void. Моя функция копирует начало строки до заданного символа, а дальше не работает. Как быть?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
//task5 - Вставка подстроки в строку после заданного символа.
void insert_str(char* str, const char* substr, char c) {
    //обработать ситуацию, если
    //сумма длин строк > 256
    const char* temp = str_chr(str, c);
    char* s2 = str;
    if (!temp) throw - 1;
    int len1 = strlen(str), len2 = strlen(temp), len3 = strlen(substr);
    
    int i = 0;
    while (i < len1 - len2) {
        str++;
        s2++;
        i++;
        s2 += *str;
    }
    s2 += *substr;
    
    str = copy(str, s2);
 
}
Добавлено через 1 час 38 минут
Вот ещё мои попытки, но не получается
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void insert_str(char* str, const char* substr, char c) {
    const char* temp = str_chr(str, c);
    char s2[Max_Length];
    if (!temp) throw - 1;
    
    int lena = strlen(str), lenb = strlen(temp), lenc = strlen(substr);
    for (int i = 0; i < lena - lenb; i++) {
        s2 += *str;
        str++;
    }
 
    strcat_s(s2, substr);
    str = copy(str, s2);
 
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
28.11.2022, 17:34
Ответы с готовыми решениями:

Функция разбивает строку на две части: до первого вхождения заданного символа и после него
Программу написал но не очень понятно как без цстринг (а это в условии, что нельзя пользоваться cstring). В самоучителе про цстринг...

Вставка слова после первого вхождения в строку
Вводиться строка (до 1000 символов), определить первое вхождение в строку слова, которое указывает пользователь, и после этого слова с...

Процедура. Определить позицию самого первого вхождения заданного символа в исходную строку

1
 Аватар для ram876
759 / 456 / 213
Регистрация: 19.12.2016
Сообщений: 1,815
29.11.2022, 09: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
53
#include <iostream>
#include <cstring>
void insertAfterChar(char* & str,const char* subStr, char ch)
{
    if(!strlen(str) || !strlen(subStr))
    {
        std::cout << "String/Substring is empty! Bye!\n";
        return;
    }
    char* temp = new char[strlen(str)+strlen(subStr)+1];
    temp[0] = '\0';
    char * found = (char *)memchr(str, ch, strlen(str));
    if(found != nullptr)
    {
        const char* ptr = str;
        int i = 0;
        while(ptr != found)
        {
            temp[i++] = *ptr++;
        }
        temp[i++] = *ptr;
        ptr = subStr;
        while(*ptr)
        {
            temp[i++] = *ptr++;
        }
        ptr = found+1;
        while(*ptr)
        {
            temp[i++] = *ptr++;
        }
        delete [] str;
        str = temp;
        temp = nullptr;
    }
    else
    {
        std::cout << "Character not found! Bye!\n";
        return;
    }
    
}
 
int main()
{
    int size = 12;
    char* str = new char[size];
    str[0] = '\0';
    strcpy(str, "Hello World");
    char subStr[] = "tralyalya";
    insertAfterChar(str, subStr,'r');
    std::cout << str;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
29.11.2022, 09:33
Помогаю со студенческими работами здесь

Функция, определяющая позицию самого первого вхождения заданного символа в исходную строку
Прошу помочь решить задачки!:(очень нужно (Билет №25) Составить функцию, позволяющую определить позицию самого первого вхождения...

Разделение строки на две части до первого вхождения заданного символа и после него
Функция - Parse(s,t). Назначение - разделение строки s на две части: до первого вхождения символа t и после него. как можно сделать ее...

Определить позицию первого вхождения в заданную строку какого-либо символа из второй заданной строки
б) Даны две строки произвольного текста. Составить процедуру, позволяющую определить позицию первого вхождения в заданную строку...

Разбить строку на две части: до первого вхождения символа и после него
Подскажите с функцией. Использовать стандартные библиотеки при реализации функции нельзя. #include&lt;stdio.h&gt; ...

Добавление подстроки в строку после заданного символа + перевод с Tasm на intel
В общем, вот такое задание &quot;В исходную строку вставить после заданного символа все символы, предшествующие ему. Оставшуюся часть строки...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru