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

Замена подстроки в строке (аналог str_replace)

02.03.2018, 16:10. Показов 2009. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. С++ познаю недавно и порой ставят в ступор довольно таки необычные вещи.
На данный момент проблема такова что необходимо в строке wp_gl_ida_mp, представляющей собой char, часть _gl_ заменить на символ _. В php это делается с помощью str_replace, а здесь что-то не смог найти подходящего варианта. Может быть кто-то подскажет не особо громоздкое решение?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
02.03.2018, 16:10
Ответы с готовыми решениями:

Замена подстроки в строке с неизвестными символами в строке
Пример: есть строка: s="Делаешь, уешь, гниешь, ешь" Нужно заменить окончание ешь на ю то-есть: Делаю, ую, гнию. но просто...

Замена подстроки в строке
Дана строка. Заменить все подстроки “xz2” на запятые без подключения дополнительных библиотек. Написал такой код, но выводиться какой-то...

Замена подстроки в строке
Так как не нашел алгоритм стемминга для C++, то пришлось что-то придумывать самому. Так вот есть такой код int i; for(i = 0; i <...

5
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
02.03.2018, 17:25
Далеко не самое лучшее решение.
http://rextester.com/SEBICC42275
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
//g++  5.4.0
 
#include <iostream>
#include <string>
 
using TStr = std::string;
 
void str_replace(TStr &search, const TStr &replace, const TStr &subject) {
    TStr result;
    size_t rsize = replace.size();
    for (size_t i = 0; i < search.size();) {   
        if (i + rsize - 1 < search.size() && search.substr(i, rsize) == replace) 
            result += subject, i += rsize;
        else
            result += search[i], i++;
    }
    search = result;
}
 
int main() {
    std::string s{"_gl_wp_gl_ida_mp_gl_"};
    std::cout << s << '\n';
    str_replace(s, "_gl_", "_");
    std::cout << s << '\n';
}
0
 Аватар для igorrr37
2874 / 2021 / 991
Регистрация: 21.12.2010
Сообщений: 3,759
Записей в блоге: 9
02.03.2018, 18:10
пожалуй, самое негромоздкое через регекс
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
#include <regex>
 
 
int main() 
{
    std::string str{ "_gl_wp_gl_ida_mp_gl_" };
    str = std::regex_replace(str, std::regex("_gl_"), "_");
    std::cout << str << std::endl;
}
0
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 7
02.03.2018, 18:23  [ТС]
а как мне результат запхать обратно в char?
0
 Аватар для Новичок
1682 / 1098 / 489
Регистрация: 17.07.2012
Сообщений: 5,360
02.03.2018, 20:23
Цитата Сообщение от Xcraft Посмотреть сообщение
а как мне результат запхать обратно в char?
Зачем в С++ использовать массивы char вместо нормальных строк(std::string)?
0
0 / 0 / 0
Регистрация: 02.04.2014
Сообщений: 7
02.03.2018, 20:38  [ТС]
Цитата Сообщение от Новичок Посмотреть сообщение
Зачем в С++ использовать массивы char вместо нормальных строк(std::string)?
Ну это будет хук в память по адресу в котором используется char и он же должен быть на выходе
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
02.03.2018, 20:38
Помогаю со студенческими работами здесь

Замена подстроки в строке
здесь у меня такая проблема возникла мне нужно заменить все &quot;were&quot; на &quot;are&quot; но &quot;are&quot; меньше на 1 символ я незнаю как его можно заменить...

Замена подстроки в строке
строке имеются названия тригонометрических функций (sin, cos,tg,ctg). Нужно составить программу, которая заменяет эти названия на русский...

Замена подстроки в строке
В строке нужно заменить подстроку aaa на 3(a). Помогите написать код без использования string.

Замена подстроки в строке
Добрый день. Есть строка $str=&quot;%str1 %str1 %str2 %str4 %str4 %str3 %str2&quot;; В ней необходимо каждые слова заменять на num0, num1,...

Замена подстроки в строке
Не понимаю почему не работает, помогите пожалуйста. import random import math import string def Change_string(string): ...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru