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

Получить 10 наиболее часто встречающихся слов из файла - C++

Восстановить пароль Регистрация
 
DIEZEL-man
13 / 13 / 0
Регистрация: 17.02.2013
Сообщений: 54
04.03.2013, 19:17     Получить 10 наиболее часто встречающихся слов из файла #1
Дан символьный файл f, содержащий произвольный текст длиной более 50 слов. Слова в тексте разделены пробелами и знаками препинания. Получить 10 наиболее часто встречающихся слов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.03.2013, 19:17     Получить 10 наиболее часто встречающихся слов из файла
Посмотрите здесь:

C++ 20 наиболее часто встречающихся слов
C++ Дан непустой массив из цифр. Вывести на экран цифру наиболее часто встречающихся в этом массиве.
Поиск наиболее часто встречающихся слов в файле C++
C++ priority_queue< int , char*, CompareHeap1 > pqMax (создать очередь с приоритетом для поиска 10 наиболее и наименее часто встречающихся слов) C++
C++ Перевод с C# на С++ (в заданном тексте найти 20 наиболее часто встречающихся слов с указанием количества использования каждого из них)
Получить 10 наиболее часто встречающихся слов в файле C++
Вывести 10 наиболее часто встречающихся чисел C++
Наиболее часто встречающиеся слова C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
anmartex
...
 Аватар для anmartex
1700 / 1193 / 494
Регистрация: 12.02.2013
Сообщений: 1,978
05.03.2013, 06:50     Получить 10 наиболее часто встречающихся слов из файла #2
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
#include <iostream>
#include <iomanip>
#include <fstream>
#include <algorithm>
#include <string>
#include <map>
#include <list>
#include <cstdlib>
 
using namespace std;
 
//----------------------------------------------//
void ReadFile(ifstream& f, map<string, int>& words)
{
   char ch = 0;
   string str;
 
   while (f.eof() == false)
   {
      ch = f.get();
      if (isalpha(ch))
      {
         str += tolower(ch);
      }
      else
      {
         if (str.empty() == false)
         {
            words[str]++;
         }
         str.clear();
      }
   }
}
//----------------------------------------------//
bool WordsComparer(const std::pair<string, int>& a,
                   const std::pair<string, int>& b)
{
   return (a.second < b.second);
}
//----------------------------------------------//
void MoveTop10(map<string, int>& words, list< pair<string, int> >& top)
{
   for (unsigned i = 0; i < 10; ++i)
   {
      map<string, int>::iterator it = std::max_element(words.begin(), words.end(), WordsComparer);
 
      if (it == words.end())
      {
         return;
      }
 
      top.push_back(pair<string, int>(it->first, it->second));
      words.erase(it);
   }
}
//----------------------------------------------//
 
int main(int argc, const char* argv[])
{
   if (argc != 2)
   {
      cerr << "Usage: program <FILE.txt>" << endl;
      system("pause");
      return 1;
   }
 
   ifstream f(argv[1]);
 
   if (f.is_open() == false)
   {
      cerr << "Error: file " << argv[1] << " not opened ..." << endl;
      return 1;
   }
 
   map<string, int> words;
 
   ReadFile(f, words);
 
   list< pair<string, int> > top;
 
   MoveTop10(words, top);
 
   cout << "Top 10:" << endl;
   for (list< pair<string, int> >::iterator it = top.begin(); it != top.end(); ++it)
   {
      cout << setw(8) << it->second << "  " << it->first << endl;
   }
 
   return 0;
}
Название: image.PNG
Просмотров: 122

Размер: 4.3 Кб

Бинарник + исходник: program.7z
Yandex
Объявления
05.03.2013, 06:50     Получить 10 наиболее часто встречающихся слов из файла
Ответ Создать тему
Опции темы

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