1. Наш канал codeby в telegram. Пишем об информационной безопасности, методах защиты информации, о программировании. Не пропускай новости с кодебай, будь в тренде ! Подробнее ...

    Скрыть объявление

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

Тема в разделе "Вопросы новичков и не только", создана пользователем Mauricio, 9 янв 2011.

  1. Mauricio

    Mauricio Гость

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

    Rififi Гость

    Репутация:
    0
    В заданном тексте везде заменить слово А1 на слово А2 (длины слов в общем случае не совпадают).

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

    Код:
    #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;
    }
    вариант посложнее (заменяются только раздельные слова)

    Код:
    #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;
    }
    использование:

    Код:
    #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.
     
Загрузка...

Поделиться этой страницей