Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Restartuk
0 / 0 / 0
Регистрация: 23.08.2015
Сообщений: 91
1

Поиск и замена слова в строке

07.10.2015, 18:31. Просмотров 871. Ответов 1
Метки нет (Все метки)

Добрый вечер. Помогите написать программу которая ищет в введенной строке одинаковые слова и меняет на слово введенное с клавиатуры (любых размеров).
Например:
Введенная стока: tyt bul tyt tyt
Поиск слова для замены: tyt
Слово замени с клавиатуры: zamena
Результат: zamena bul zamena zamena
Нужно использовать функцию strstr и ей подобные.
Только без string,find, replace.
Код должен быть попроще как для новичка.
Спасибо.
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
07.10.2015, 18:31
Ответы с готовыми решениями:

Поиск в строке всех повторений заданного слова, замена их звездочками
Привет, помогите написать программу по с++. Дело в том, что я в этом языке не...

Замена слова в строке
Задание: ввести с клавиатуры строку + слово, которое нужно заменить + слово, на...

Замена в строке слова на букву
Есть строка string n="раз два три"; нужно слово раз заменить на букву Б.

Замена одного слова в строке на другое
Как заменить read на study ? int main(int argc, char**argv) { string...

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

1
Геомеханик
790 / 596 / 938
Регистрация: 26.06.2015
Сообщений: 1,409
08.10.2015, 16:25 2
Лучший ответ Сообщение было отмечено Restartuk как решение

Решение

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
#include <iostream>
#include <cstring>
 
char* str_replace(char* str, size_t size, const char* old, const char* ns){
    size_t len, num;
    char*  tmp  = str;
    size_t len1 = strlen(old);
    size_t len2 = strlen(ns);
 
    if(len2 > len1){
        len = strlen(str);
        num = len2 - len1;
    }
 
    while((str = strstr(str, old)) != NULL){
        if(len1 > len2){
            strncpy(str, ns, len2);
            strcpy(str + len2, str + len1);
        } else if(len1 < len2){
 
            if((len + num + 1) >= size)
                break;
 
            memmove(str + num, str, (len - (size_t)(str - tmp)) * sizeof(char));
            strncpy(str, ns, len2);
            len += num;
        } else
            strncpy(str, ns, len2);
        str += len2;
    }
    return tmp;
}
 
int main(void){
    char str[256] = "дуб, (дуб), липа, дуб, {дуб}... дуб";
    char old[]    = "дуб";
    char ns[]     = "берёза";
 
    std::cout << str << std::endl;
    std::cout << str_replace(str, sizeof(str)-1, old, ns) << std::endl;
    return 0;
}
Пример работы кода
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.10.2015, 16:25

Поиск слова в файле и его замена
Не могу никак решить одну проблему. Мне осталось в 3 классе написать следующее:...

Замена одного слова на другое в строке типа char
Замена одного символа на другой в строке типа char - C++ Вообщем есть массив...

Файлы, поиск слова и замена на другое слово
Напишите программу, которая в файле INPUT.txt заменяет слово &quot;hello&quot; на слово...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru