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

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

Войти
Регистрация
Восстановить пароль
 
Lacteus
0 / 0 / 0
Регистрация: 24.02.2011
Сообщений: 11
#1

Сформируйте новую строку из пяти самых длинных слов. - C++

21.04.2011, 11:19. Просмотров 507. Ответов 2
Метки нет (Все метки)

Дана строка слов, разделенных пробелами, запятыми, точками. Сформируйте новую строку из пяти самых длинных слов. Определите количество слов, начинающихся первой буквой алфавита (русского или латинского).
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.04.2011, 11:19     Сформируйте новую строку из пяти самых длинных слов.
Посмотрите здесь:

Строки: найти первое из самых длинных и последнее из самых коротких слов и поменять их местами - C++
Помогите написать прогу) 1. Строка состоит не менее чем из двух слов. Преобразовать её по следующему правилу: найти первое из самых...

Найти 5 самых длинных слов - C++
Как найти 5 самых длинных слов? #include "stdafx.h" #include "windows.h" #include <iostream> #include <fstream> #include <math.h>...

Пять самых длинных слов - C++
Дана строка слов разделенных пробелами, запятыми, точками. Сформируйте новую строчку из пяти самых длинных слов. #include <iostream>...

Найти 50 самых длинных слов в файле - C++
Здравствуйте! Буду благодарна за помощь) Нужно в большом файле с текстом найти 50 самых длинных слов. Кое что сделала, но есть...

Дана строка слов, разделенных пробелами. Сформируйте новую строку, вставив перед каждым вхождением слова "and" запятую - C++
Дана строка слов, разделенных пробелами. Сформируйте новую строку, вставив перед каждым вхождением слова "and" запятую. Определите, сколько...

Поиск самых длинных и комбинированных слов в файле - C++
Здравствуйте. У меня есть такая задача: 1. Найти 2 самых длинных комбинированных слова 2. Найти все комбинированные слова в файле ...

Удалить из файла строчки содержащие несколько самых длинных слов - C++
Подскажите как это можно сделать.

Функция, ввести произвольный текст и получить фразу из самых длинных слов - C++
Надо разработать функцию нахождения самого длинного слова в строке, ввести произвольный текст и получить фразу из самых длинных слов. Как...

Дана строка символов и некоторый символ sym. Сформируйте новую строку, вставив после каждого вхождения символа sym запятую. - C++
Помогите решить задачку: Дана строка символов и некоторый символ sym. Сформируйте новую строку, вставив после каждого вхождения...

Вывести 10 самых длинных (по числу символов) предложений - C++
Ребят программисты помогите, понимаю что программа легкая. Но не могу сделать. Текст надо считать из файла.


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
21.04.2011, 16:50     Сформируйте новую строку из пяти самых длинных слов. #2
С или С++?
asics
Freelance
Эксперт С++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,841
21.04.2011, 21:01     Сформируйте новую строку из пяти самых длинных слов. #3
Цитата Сообщение от Lacteus Посмотреть сообщение
Дана строка слов, разделенных пробелами, запятыми, точками. Сформируйте новую строку из пяти самых длинных слов. Определите количество слов, начинающихся первой буквой алфавита (русского или латинского).
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
#include <iostream>
#include <string>
#include <sstream>
#include <set>
#include <algorithm>
#include <cctype>
#include <iterator>
 
typedef std::string  T_str;
 
int main(){
  std::string s, res_s = "", tmp;
  std::cout << "\n\nString = ";
  getline(std::cin, s);
  struct  comp{
    bool operator() (const T_str &_s, const T_str &__s) const{
      return _s.length() > __s.length();
    }
    bool operator() (const T_str &_s) const{
      return _s[0] == 'a' || _s[0] == 'A';
    }
  };
  std::replace_if(s.begin(), s.end(), ispunct, ' ');
  std::istringstream ist(s);
  std::multiset<T_str, comp>  set_wrd((std::istream_iterator<T_str>(ist)),
                                       std::istream_iterator<T_str>());
  if(set_wrd.size() < 5){
    std::cerr << "INPUT ERROR" << std::endl;
    return 1;
  }
  std::multiset<T_str, comp>::iterator it = set_wrd.begin(), _it = it;
  std::advance(it, 5);
  while(_it != it){
    res_s += *_it + " ";
    ++_it;
  }
  std::cout << "\n\nResult string = " << res_s << '\n'
            << "Count = " << std::count_if(set_wrd.begin(), set_wrd.end(), comp())
            << std::endl;
  return 0;
}
Ответ Создать тему
Опции темы

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