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

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

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

C++ Отредактировать заданное предложение, удаляя из него те слова, которые уже встречались в предложении раньше
C++ Отредактировать текст,удалив из него все слова с нечетными номерами
Дан файл, содержащий текст на русском языке. Выбрать из него те символы, которые встречаются в нем только один раз, в том порядке, в котором они в C++
C++ отредактировать предложение ,удаляя из него лишние пробелы...
Задан текст. Определить, входит ли в него заданное слово и сколько раз. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
David Sylva
 Аватар для David Sylva
1280 / 942 / 51
Регистрация: 17.05.2012
Сообщений: 2,686
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
1244 / 1127 / 53
Регистрация: 21.04.2012
Сообщений: 2,350
Завершенные тесты: 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     Отредактировать текст,удаляя из него слова,которые встречаются в предложении заданное число раз
Ответ Создать тему
Опции темы

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