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

Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву - C++

Восстановить пароль Регистрация
 
Alex_48
0 / 0 / 0
Регистрация: 13.03.2014
Сообщений: 3
13.03.2014, 14:09     Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву #1
Дан файл, содержащий текст на русском языке. Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву и выдать эти буквы с указанием соответствующего количества слов.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.03.2014, 14:09     Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву
Посмотрите здесь:

C++ Дана строка символов. Найти количество слов начинающихся на A и заканчивающихся на D
посчитать количество слов, начинающихся согласной и заканчивающихся буквой а C++
C++ Количество слов, начинающихся и заканчивающихся одной буквой
Подсчитать количество слов в тексте, начинающихся и заканчивающихся одной и той же буквой C++
Определить количество слов в каждой строке , начинающихся на ‘А’ и заканчивающихся на “ и” C++
Определить в строке количество слов, начинающихся на заданную пользователем букву C++
C++ Вычислить количество слов в заданной строке, начинающихся и заканчивающихся 'W'
C++ Дана строка S, вывести количество слов начинающихся и заканчивающихся 'W'

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
StailGot
27 / 22 / 6
Регистрация: 25.08.2013
Сообщений: 41
14.03.2014, 23:38     Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву #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
#include <fstream>
#include <iomanip>
#include <iostream>
#include <map>
#include <set>
#include <string>
 
int main()
{
  using namespace std;
  ::setlocale( LC_CTYPE, "Ru" );
 
  using stats_t = map<char, pair<size_t, map<string, size_t>>>;
 
  ifstream file( "A:/book1.txt" );
 
  auto get_equal_word_ends =
    []( istream & src )
  {
 
    auto is_equal_ends =
      []( const string & str )
    {
      return str.length() && ::tolower( str[0] ) == ::tolower( str[str.length() - 1] );
    };
 
    stats_t words_stats;
    string  buf;
    int     ch = 0;
    bool    is_finished = false;
 
    while ( (ch = src.get()), !src.eof() || !is_finished )
      if ( ::isalpha(ch) )
        buf += ch;
      else if ( buf.length() )
      {
        if ( is_equal_ends( buf ) && buf.length() > 1 )
        {
          auto & stats  = words_stats[::toupper( buf[0] )];
          ++stats.first;
          ++stats.second[buf];
        }
        buf.clear();
      }
      else if ( src.eof() || src.fail() )
        is_finished = true;
 
    return words_stats;
  };
 
  auto print_stats = [] ( const stats_t & stats, ostream & dest )
  {
    for ( auto & word : stats )
    {
      dest << word.first << " — " << word.second.first << endl;
 
      // подробная информация
      for ( auto & words : word.second.second )
        dest << setw( 15 ) << left << words.first << " - " << words.second << endl;
      dest << endl;
 
    }
  };
 
  //ofstream file_out( "A:/out.txt" ); // для вывода в файл
 
  if ( file.is_open() )
    print_stats( get_equal_word_ends(file), cout /*file_out*/);
  else
    cout << "file not found";
}
Yandex
Объявления
14.03.2014, 23:38     Подсчитать количество слов, начинающихся и заканчивающихся на одну и ту же букву
Ответ Создать тему
Опции темы

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