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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 12, средняя оценка - 4.67
zero4kin
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 9
#1

Отредактировать текст,удаляя из него слова,которые встречаются в предложении заданное число раз - C++

16.07.2012, 22:21. Просмотров 1544. Ответов 3
Метки нет (Все метки)

Осталось пара заданий в практике,сам не могу разобраться как сделать,времени совсем нету,прощу помочь.
1 Отредактировать текст,удаляя из него слова,которые встречаются в предложении заданное число раз.
предусмотреть ввод и вывод данных на дисплей либо в файл.
Заранее спасибо!
 Комментарий модератора 
Одна тема - один вопрос!
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.07.2012, 22:21     Отредактировать текст,удаляя из него слова,которые встречаются в предложении заданное число раз
Посмотрите здесь:

C++ Отредактировать заданное предложение, удаляя из него те слова, которые уже встречались в предложении раньше
C++ Отредактировать текст,удалив из него все слова с нечетными номерами
C++ Подсчитать количество слов, которые встречаются в предложении ровно 1 раз
Строки в С++ - вывести слова, которые встречаются один раз C++
Дан файл, содержащий текст на русском языке. Выбрать из него те символы, которые встречаются в нем только один раз, в том порядке, в котором они в C++
C++ Отредактировать предложение, удаляя из него лишние пробелы
C++ Напечатать все слова, которые встречаются в предложении по одному разу
Задан текст. Определить, входит ли в него заданное слово и сколько раз. C++
Отредактировать предложение, удаляя из него лишние пробелы C++
C++ Дан массив. Выберите из него все элементы, которые встречаются в массиве наибольшее число раз
Отредактировать заданное предложение, удаляя из него все слова с нечетными номерами и переворачивая слова с четными номерами C++
C++ Удалить из строки слова, которые встречаются заданное число раз (нужны комментарии)

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1283 / 945 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
17.07.2012, 16:16     Отредактировать текст,удаляя из него слова,которые встречаются в предложении заданное число раз #2
Удаление можно сделать вот так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream> 
#include <string>
using namespace std; 
int main() 
{ 
    string str = "Real Madrid Champions of Spain of"; // исходная строка
    string asd = "of";  // что удаляем
    int size = 2;       // количество
    int n;              // позиция удаляемого
    for ( int i = 0; i < size; i++) 
    {
       n = str.find(asd);   // ищем
       str.erase(n, asd.size());  // удаляем
    } 
 cout << str << endl;
}
zero4kin
0 / 0 / 0
Регистрация: 16.07.2012
Сообщений: 9
17.07.2012, 21:13  [ТС]     Отредактировать текст,удаляя из него слова,которые встречаются в предложении заданное число раз #3
Спасибо,но тут не надо задавать какое именно слово следует удалять,а должен вестись подсчет одинаковых слов,и если их количество совпадет с заданным,они должны быть удалены
gray_fox
What a waste!
 Аватар для gray_fox
1252 / 1135 / 54
Регистрация: 21.04.2012
Сообщений: 2,357
Завершенные тесты: 3
18.07.2012, 01:47     Отредактировать текст,удаляя из него слова,которые встречаются в предложении заданное число раз #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
27
28
#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <set>
 
#include <boost/algorithm/string.hpp>
 
 
int main() {
   std::string text = "And many of them were caught, and some of them are still imprisoned and so on...";
   std::size_t const amount_to_remove = 1;
   
   std::vector<std::string> tokens;
   boost::split(tokens, text, boost::is_any_of(" .,"), boost::token_compress_on);
   for (auto & token : tokens) {
      boost::to_lower(token);
   }
   std::set<std::string> words(tokens.cbegin(), tokens.cend());
   for (auto const& word : words) {
      std::size_t count = std::count(tokens.cbegin(), tokens.cend(), word);
      if (count == amount_to_remove) {
         boost::ierase_all(text, word);
      }
   }
   
   std::cout << text << std::endl;
}
http://liveworkspace.org/code/4780b5...6089fe22aa4b3b
Yandex
Объявления
18.07.2012, 01:47     Отредактировать текст,удаляя из него слова,которые встречаются в предложении заданное число раз
Ответ Создать тему
Опции темы

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