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

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

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

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

04.03.2014, 22:07. Просмотров 1137. Ответов 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++ Файлы, поиск слова и замена на другое слово
Замена слов в строке C++
C++ Замена слов в строке
Замена слов в строке C++
Заменить в строке одно слово на другое, заданное с клавиатуры. C++
Заменить в строке одно слово на другое, заданное с клавиатуры. C++
Замена слов в строке C++
C++ вывести слова - анаграммы из словаря, состоящего из пар слов(при чтении в обратном порядке образуется другое слово)
C++ Замена одного слова на другое в строке типа char
Замена слова в файле на другое слово C++
C++ Замена одного слова в строке на другое
Замена слов в строке C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
}
KOPOJI
Модератор
Эксперт HTML/CSSЭксперт PHP
16677 / 6603 / 427
Регистрация: 12.06.2012
Сообщений: 19,834
Завершенные тесты: 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