Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Alex_lion
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 2
#1

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

04.03.2014, 22:07. Просмотров 1229. Ответов 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;
}
Буду рад любой помощи
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2014, 22:07     Замена слов в строке на другое слово
Посмотрите здесь:

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

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

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

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

Заменить в строке одно слово на другое, заданное с клавиатуры. - C++
Условие задачи: Заменить в строке одно слово на другое, заданное с клавиатуры. Текст программы: #include&lt;conio.h&gt; ...

Заменить в строке одно слово на другое, заданное с клавиатуры. - C++
Строка: aa1 bb1 cc1 dd1 слово 1: bb1 слово 2: ff1 решение: aa1 ff1 cc1 dd1 Для начинающего программиста, если можно то программу...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ev_Hyper
Заблокирован
04.03.2014, 22:59     Замена слов в строке на другое слово #2
Alex_lion, компилятор указывает на ошибки:
Вместо:
C++
1
wlile(i<(str.size()){
C++
1
    while(i<(str.size())){
А также, у вас переменная j не объявлена.
Alex_lion
0 / 0 / 0
Регистрация: 04.03.2014
Сообщений: 2
04.03.2014, 23:44  [ТС]     Замена слов в строке на другое слово #3
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;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.03.2014, 23:57     Замена слов в строке на другое слово
Еще ссылки по теме:

вывести слова - анаграммы из словаря, состоящего из пар слов(при чтении в обратном порядке образуется другое слово) - C++
Ребят, помогите пожалуйста написать прогу на С++=(в задании не было сказано что бы считывало с файла, поэтому, можно все, прямо в проге...

Замена слов в строке - C++
Помогите с заданием. Дана строка символов S. Каждое второе слово в строке заменить символ тире. Код, который не работает(( ...

Замена слов в строке - C++
Можно ли как-то в строке например Заменить все слова &quot;много&quot;, как это сделать ?

Замена слов в строке - C++
Программа берет данные из файла. Далее должна заменять Все слова н1 на н2. Однако получается только для первого найденного слова. ...

Замена слов в строке - C++
Добрый вечер. Помогите, пожалуйста советом или кодом: требуется полученную строку изменить так, чтобы первое и среднее слово поменялись...

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


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

Или воспользуйтесь поиском по форуму:
KOPOJI
Модератор
Эксперт HTML/CSSЭксперт PHP
16694 / 6620 / 431
Регистрация: 12.06.2012
Сообщений: 19,875
Завершенные тесты: 1
04.03.2014, 23:57     Замена слов в строке на другое слово #4
А не проще так, например? Тоже решение "в лоб"..
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;
}
Yandex
Объявления
04.03.2014, 23:57     Замена слов в строке на другое слово
Ответ Создать тему
Опции темы

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