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

Замена слов в строке на другое слово

04.03.2014, 22:07. Показов 8451. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Не могу понять в чём ошибка, вроде бы всё логично, но при работе программа выдаёт 3 ошибки и не выполняется(то есть слова я ввожу и всё)

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
//Задача: Вводится строка str и cлово word, после чего программа должна заменить слова из str на word, если они начинаются на одну и туже букву
//Ну и вывести готовую строку
 
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string str, word, letter;
    int i=0;
    
    getline(cin, str);
    cin >> word;
    
    letter = word;
    letter.swap(1); //ищу первую букву
    
    wlile(i<(str.size()){
    
        unsigned int n, num, l=0;
        
        n = str.find(letter); //присваиваю n номер, того когда находится первая буква слова
        
        if(str[n-1]==' '){ //проверяюю являится ли эта буква началом нового слова
        
            //если да, то считаю размер этого слова(всмесле в слова в строке)
            
            num = n +1;
            while(str[num]!=' '){
                l++; // размер слова
            }
            str.replace((n+1), j, word); //заменяю начиная с n+1, j символов на word
            i = n;
        }
            
        else 
            i++;    
    }
    cout<<str;
    
    return 0;
}
Буду рад любой помощи
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
04.03.2014, 22:07
Ответы с готовыми решениями:

Замена слово сочетания в строке на другое словосочетание
Добрых времени суток. Есть List&lt;string&gt; со строками. В строках находится n-е количество одинаковых слово сочетаний разделенных текстом,...

Ввести строку. Заменить заданное слово на другое слово в строке
Всем доброго. Возможно тему отправила не по адресочку...извиняйте ! В общем очень нужна помощь с составление программы.. помогите...

Заменить каждое слово в строке на обратное ему слово, при этом сохраняя последовательность слов в строке
Доброго времени суток ! Есть задача Заменить каждое слово в строке на обратное ему слово, при этом сохраняя последовательность слов в...

3
Заблокирован
04.03.2014, 22:59
Alex_lion, компилятор указывает на ошибки:
Вместо:
C++
1
wlile(i<(str.size()){
C++
1
    while(i<(str.size())){
А также, у вас переменная j не объявлена.
0
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 2
04.03.2014, 23:44  [ТС]
Ev_Hyper, Исправил, но программа всё равно слова не заменяет
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
#include <iostream>
#include <string>
 
using namespace std;
 
int main()
{
    string str, word, letter;
    int i=0;
 
    getline(cin, str);
    cin >> word;
 
    letter = word;
    letter.substr(1,1); //ищу первую букву
 
    while(i<(str.size())){
 
        unsigned int n, num, l=0;
 
        n = str.find(letter); //присваиваю n номер, того когда находится первая буква слова
 
        if(str[n-1]==' '){ //проверяюю являится ли эта буква началом нового слова
 
            //если да, то считаю размер этого слова(всмесле в слова в строке)
 
            num = n +1;
            while(str[num]!=' '){
                l++; // размер слова
            }
            str.replace((n+1), l, word); //заменяю начиная с n+1, l символов на word
            i = n;
        }
 
        else
            i++;
    }
    cout<<str;
 
    return 0;
}
0
Почетный модератор
Эксперт HTML/CSSЭксперт PHP
 Аватар для KOPOJI
16844 / 6724 / 880
Регистрация: 12.06.2012
Сообщений: 19,967
04.03.2014, 23:57
А не проще так, например? Тоже решение "в лоб"..
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 <sstream>
 
int main(int argc, char *argv[])
{
    std::string str;
    std::string new_str;
    std::string word;
    std::string tmp_word;
    
    std::cout << "Введите предложение.." << std::endl;
    std::getline(std::cin, str);
    
    std::cout << "Введите слово для замены.." << std::endl;
    std::cin >> word;
    
    std::stringstream  data(str);
    
    while(std::getline(data, tmp_word, ' '))
        new_str.append((tmp_word[0] == word[0] ? word : tmp_word) + " ");
 
    std::cout << "Исходная строка:" << std::endl << str << std::endl;
    std::cout << "Полученная строка:" << std::endl << new_str << std::endl;
 
    return 0;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
04.03.2014, 23:57
Помогаю со студенческими работами здесь

Замена слова в файле на другое слово
Есть файл file.txt, в котором много текста, строк где-то на 25. Как мне в нем все слова &quot;afz&quot;, заменить на переменную в которой...

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

Замена одного слова в строке на другое
Как заменить read на study ? int main(int argc, char**argv) { string /*const*/ text1 = &quot;I'm reading\n&quot;; string /*const*/ text2...

Поменять в строке одно слово на другое
разработать программу, меняющую в строке одно слово на другое. Слова разделены одним пробелом.

Замена одного слова на другое в строке типа char
Замена одного символа на другой в строке типа char - C++ Вообщем есть массив символов char str = &quot;abcafgh&quot;; нужно все...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Рецензия / Мнение/ Перевод Нашел на реддите интересную статью под названием The Thinkpad X220 Tablet is the best budget school laptop period . Ниже её машинный перевод. Thinkpad X220 Tablet —. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru