• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • 🚨 29 мая стартует курс «Пентест Active Directory: от теории к практике» от Академии Кодебай

    🔍 Изучите реальные техники атак на инфраструктуру Active Directory: от первоначального доступа до полной компрометации.
    🛠️ Освойте инструменты, такие как BloodHound, Mimikatz, CrackMapExec и другие.
    🧪 Пройдите практические лабораторные работы, имитирующие реальные сценарии атак.
    🧠 Получите знания, которые помогут вам стать востребованным специалистом в области информационной безопасности.

    После старта курса запись открыта еще 10 дней Подробнее о курсе ...

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

Задача: Строки, заменить одного слово на другое

  • Автор темы Автор темы Mauricio
  • Дата начала Дата начала
M

Mauricio

Тема: Строки и операции над ними. Использование функций обработки текстовых строк.
В заданном тексте везде заменить слово А1 на слово А2 (длины слов в общем случае не совпадают).
Вот такая вот задачка помогите пожалуйста решить
 
В заданном тексте везде заменить слово А1 на слово А2 (длины слов в общем случае не совпадают).

вариант попроще (не учитывается что A1 - это слово, меняется кусок текста)

C++:
#include <string>
#include <iostream>
#include <algorithm>
void replace(std::string text, const std::string& from, const std::string& to)
{
for (size_t i = 0; (i = text.find(from, i)) != std::string::npos; i += to.length())
text.replace(i, from.length(), to);

std::cout << text << std::endl;
}

вариант посложнее (заменяются только раздельные слова)

C++:
#include <string>
#include <iostream>

#include <boost/xpressive/xpressive.hpp>
namespace xpr = boost::xpressive;
using xpr::_b;
void replace(std::string text, const std::string& from, const std::string& to)
{
const xpr::sregex rx = _b >> from >> _b;	
std::cout << xpr::regex_replace(text, rx, to) << std::endl;
}

использование:

C++:
#include <locale>

...

int main()
{
setlocale(LC_ALL, "");

const std::string text = 
"I wanted to live the life, a different life. "
"I didn't want to go to the same place every day and see the same people and do the same job. "
"I wanted interesting challenges.";

replace(text, "want", "wish");

return 0;
}

в первом варианте:

I wished to live the life, a different life. I didn't wish to go to the same place every day and see the same people and do the same job. I wished interesting challenges.

во втором варианте:

I wanted to live the life, a different life. I didn't wish to go to the same place every day and see the same people and do the same job. I wanted interesting challenges.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!

Курс AD