Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.85/13: Рейтинг темы: голосов - 13, средняя оценка - 4.85
49 / 31 / 19
Регистрация: 27.10.2019
Сообщений: 184
1

Как заменить каждое третье слово например "Word" другим словом и подсчитать количество таких замен на c++

08.06.2020, 20:07. Показов 2355. Ответов 11
Метки c++ (Все метки)

Author24 — интернет-сервис помощи студентам
Как заменить каждое третье слово например "Word" другим словом "Text"и подсчитать количество таких замен на c++?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.06.2020, 20:07
Ответы с готовыми решениями:

Заменить буквы на '!' и подсчитать количество таких замен в каждой строке
Создать приложение, предлагающее пользователю ввести две строки текста и печатает все буквы,...

Заменить в S все буквосочетания «оно» буквой «ты». Подсчитать количество таких замен
Заменить в S все буквосочетания «оно» буквой «ты». Подсчитать количество таких замен

Заменить все пробелы текста на слово Экзамен и подсчитать количество замен
Помогите решить!срочно!

Заменить каждое третье слово в строке
Помогите написать процедуру для задания: В заданной строке, состоящей из слов, разделенных ...

В заданной строке, состоящей из слов, разделенных одним или более пробелами, заменить каждое третье слово «мама» слово
помогите решить пожалуйста а то я в программировании не очень)

11
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
09.06.2020, 00:36 2
Лучший ответ Сообщение было отмечено Ca5tor как решение

Решение

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
#include <iostream>
#include <string>
 
int main()
{
    std::string str = "word, word, word, word, word, word, word, word";
    const std::string word = "word";
    const std::string text = "text";
    size_t pos = str.find(word);
    
    size_t step = 0;
    while (pos != str.npos)
    {
        if (step == 2)
        {
            str.replace(str.begin() + pos, str.begin() + pos + word.length(), text.begin(), text.end());
            step = 0;
        }
        else
        {
            step++;
        }
        pos = str.find(word, pos + 1);
    }
    std::cout << str;
}
но есть проблема, я особо не уверен нужно ли это вам, оно будет учитывать то что обтекается текстом, это проблема для вас?
1
49 / 31 / 19
Регистрация: 27.10.2019
Сообщений: 184
09.06.2020, 01:04  [ТС] 3
AndryS1, Что значит " оно будет учитывать то что обтекается текстом"?
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
09.06.2020, 01:12 4
Цитата Сообщение от Ca5tor Посмотреть сообщение
Что значит " оно будет учитывать то что обтекается текстом"?
допустим слово которое мы хотим заменить - word
тогда в тексте
heriughiuwordoihweoiwordoihoihegword оно заменит последний word, хоть по факту он и не является словом
0
49 / 31 / 19
Регистрация: 27.10.2019
Сообщений: 184
09.06.2020, 01:15  [ТС] 5
AndryS1, думаю что не проблема.
Но чисто из интереса как это можно исправить?
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
09.06.2020, 01:25 6
Цитата Сообщение от Ca5tor Посмотреть сообщение
Но чисто из интереса как это можно исправить?
в голове 2 варианта
1. Разбить всё на слова, потом уже по словам ходить
2. Искать не конкретно word, а с разделителями на конце и начале
1
49 / 31 / 19
Регистрация: 27.10.2019
Сообщений: 184
09.06.2020, 01:31  [ТС] 7
AndryS1, а как можно найти и вывести строки в которых не было ни одной замены?
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
09.06.2020, 02:22 8
Цитата Сообщение от Ca5tor Посмотреть сообщение
а как можно найти и вывести строки в которых не было ни одной замены?
в смысле сохранить исходную строку?
0
49 / 31 / 19
Регистрация: 27.10.2019
Сообщений: 184
09.06.2020, 02:28  [ТС] 9
AndryS1, скажем в файле txt есть несколько строк, и нужно найти и вывести их где замены слов не было
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
09.06.2020, 02:36 10
Лучший ответ Сообщение было отмечено Ca5tor как решение

Решение

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
#include <fstream>
#include <iostream>
#include <string>
 
int main()
{
    const std::string word = "word";
    const std::string text = "text";
    
    std::ifstream file("filename");
 
    if (!file.is_open()) 
    {
        return -1;
    }
 
    std::string str;
 
 
    while (std::getline(file, str))
    {
        size_t step = 0;
 
        bool replaced = false;
 
        size_t pos = 0;
        while (pos != str.npos && !replaced)
        {
            if (step == 2)
            {
                replaced = true;
            }
            else
            {
                step++;
            }
            pos = str.find(word, pos + 1);
        }
        if (!replaced)
        {
            std::cout << str << std::endl;
        }
    }
}
Добавлено через 25 секунд
Заменять не обязательно, нам нужно только проверить "стоит ли заменить эту строку"
0
49 / 31 / 19
Регистрация: 27.10.2019
Сообщений: 184
09.06.2020, 03:20  [ТС] 11
AndryS1, Что значит while (std::getline(file, str))?

Добавлено через 6 минут
AndryS1, и как его использовать в виндовс форм? там его не получается использовать
0
653 / 466 / 183
Регистрация: 23.04.2019
Сообщений: 1,987
09.06.2020, 04:32 12
Цитата Сообщение от Ca5tor Посмотреть сообщение
и как его использовать в виндовс форм? там его не получается использовать
для этого на форуме есть отдельный раздел

Цитата Сообщение от Ca5tor Посмотреть сообщение
Что значит while (std::getline(file, str))?
считываем из потока file, строку и записываем её в str
если поток будет пуст, цикл прервётся
0
09.06.2020, 04:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
09.06.2020, 04:32
Помогаю со студенческими работами здесь

В тексте одно введённое слово заменить другим словом.
Помогите, пожалуйста(((( нужно в тексте одно введённое слово заменить другим словом, которое также...

Заменить некоторое слово другим словом такой же длины
Помогите разобраться 1. Задача (про замену слов в строке) Составить программу, которая везде в...

заменить каждое слово синий словом зеленый
составить программы с помощью которых: -сформировать текстовый файл из строк,которые должны...

Заменить каждое слово синий словом зеленый
Составит программы с помощью которых: -сформировать текстовый файл из строк,которые должны быть...

В строке заменить каждое слово child словом children
В данном предложении заменить каждое слово child словом children.

В строке введённой с клавиатуры, каждое слово this заменить словом the.
В строке введённой с клавиатуре каждое слово this заменить словом the. СРОЧНО, прям гарю!!!


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

Или воспользуйтесь поиском по форуму:
12
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru