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

Задачка из страуструпа , глава 4 ,вектора - C++

Восстановить пароль Регистрация
 
tyan
 Аватар для tyan
0 / 0 / 0
Регистрация: 03.06.2012
Сообщений: 14
28.11.2013, 18:59     Задачка из страуструпа , глава 4 ,вектора #1
Здравствуйте, помогите пожалуйста довести задачку до ума

Вот сама задачка:
{deleted}
 Комментарий модератора 
Нарушены п.5.18 и 5.19 Правил
5.18. Запрещено размещать задания и решения в виде картинок и других файлов с их текстом.
5.19. Запрещено создавать темы в виде ссылок на задания или коды программ, расположенные на других сайтах.

Делается она по такому примеру:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include "std_lib_facilities.h"
 
//------------------------------------------------------------------------------
 
// simple dictionary: list of sorted words:
int main()
{
    vector<string> words; 
    string temp;
    while (cin>>temp)                // read whitespace separated words
        words.push_back(temp);       // put into vector
 
    cout << "Number of words: " << words.size() << endl;
 
    sort(words.begin(),words.end()); // sort "from beginning to end"
 
    for (int i = 0; i< words.size(); ++i) 
        if (i==0 || words[i-1]!=words[i]) // is this a new word?
            cout << words[i] << "\n";
}
 
//------------------------------------------------------------------------------

Мой код:

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
#include "../../std_lib_facilities.h"
 
 
 
 
int main()
{
 
vector<string> badwords;
string temp;
string disliked = "broccoli";
 
 
//ВВодим слова для обработки и печатаем кол-во слов
while (cin>>temp)
    badwords.push_back(temp);
    cout << "Kol-vo slov do obrabotki" << badwords.size() << endl;
    
 
//Проверяем, есть ли нежелательное слово
for (int i=0;i<badwords.size();i++)
    if (badwords[i]==disliked)
 
 
//Перезаписываем вектор
 
 
//тут хочу вывести новый вектор
cout << "Vivodim obnovlennii vektor" << endl;
for (int i=0;i<badwords.size();i++)
cout << badwords[i] << endl;
 
 
    keep_window_open();
}

Собственно не могу выполнить "//Перезаписываем вектор" и распечатку нового вектора
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.11.2013, 18:59     Задачка из страуструпа , глава 4 ,вектора
Посмотрите здесь:

Задачка от Страуструпа для новичков C++
C++ Задачка из книги Страуструпа...
С.Прата глава 5(циклы) зад.4 C++
Задачка из книги Страуструпа C++
книга прата с. глава 6 задание 7 C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
scenotaph
120 / 120 / 15
Регистрация: 29.03.2013
Сообщений: 237
28.11.2013, 19:38     Задачка из страуструпа , глава 4 ,вектора #2
C++
1
2
3
4
5
for (int i=0;i<badwords.size();i++) {
    if (badwords[i]==disliked) {
        badwords[i] = "BLEEP";
    } cout<<badwords[i]<<" ";
}
tyan
 Аватар для tyan
0 / 0 / 0
Регистрация: 03.06.2012
Сообщений: 14
28.11.2013, 19:45  [ТС]     Задачка из страуструпа , глава 4 ,вектора #3
Цитата Сообщение от scenotaph Посмотреть сообщение
C++
1
2
3
4
5
for (int i=0;i<badwords.size();i++) {
    if (badwords[i]==disliked) {
        badwords[i] = "BLEEP";
    } cout<<badwords[i]<<" ";
}
блин, вот так ошибка, спасибо!
Flysolo
0 / 0 / 0
Регистрация: 13.03.2015
Сообщений: 22
23.07.2015, 01:47     Задачка из страуструпа , глава 4 ,вектора #4
Сделал как тут парни отписались, но программа выводит лишь строчку с количеством слов в векторе и сигнал BLEEP, но список слов программа не выносит. Помогите пожалуйста

вот мой код
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
#include <conio.h>
#include "std_lib_facilities.h"
#include <clocale>
 
int main()
 
{
setlocale (LC_ALL, "Russian");
 
vector<string> words; 
    string temp;
    string disliked = "bro";
 
while (cin>>temp)  
    words.push_back(temp);
cout << "Количество слов в векторе: " << words.size() << endl;
 
    sort(words.begin(), words.end());
 
for (int i = 0; i<words.size(); ++i)
    if (words[i]==disliked){
        words[i]="BLEEP";
    cout << words[i];
    }
_getch();   
return 0;
keep_window_open();
}

Вот сама задача: Напишите программу, заглушающую нежелательные слова; иначе говоря, считайте слова из потока cin и выведите их в поток cout, заменив нежелательные слова словом BLEEP. Начните с одного нежелательного слова, например string disliked = "Broccoli"; Когда отладите программу, добавьте еще несколько нежелательных слов.

Добавлено через 1 час 0 минут
C++
1
2
3
4
5
6
for (int i = 0; i<words.size(); ++i){
        if (words[i] == disliked)
            cout << "BLEEP" << endl;    
        else 
            cout << words[i] << endl;
    }
Вот так заработала программа. Теперь надо ввести несколько нежелательных слов
как правильно это сделать, подскажите
Yandex
Объявления
23.07.2015, 01:47     Задачка из страуструпа , глава 4 ,вектора
Ответ Создать тему
Опции темы

Текущее время: 10:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru