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

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

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

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

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

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

Строки: найти первое из самых длинных и последнее из самых коротких слов и поменять их местами C++
C++ Дана строка слов, разделенных пробелами. Сформируйте новую строку, вставив перед каждым вхождением слова "and" запятую
C++ В файле найти первую из самых длинных последовательностей соседних символов, состоящую только из цифр
C++ Сформировать новую строку из 7-символьных слов, состоящих из латинских букв, не имеющих аналогов записи в русском языке
C++ Пять самых длинных слов
Дана строка, состоящая из четырех слов. Сформировать новую строку, где первое и последнее слова поменяются C++
Найти 50 самых длинных слов в файле C++
Найти 5 самых длинных слов C++
C++ Функция, ввести произвольный текст и получить фразу из самых длинных слов
C++ Вывести 10 самых длинных (по числу символов) предложений
Найти произведение самых длинных последовательностей отрицательных чисел каждой строки матрицы C++
Поиск самых длинных и комбинированных слов в файле C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
21.04.2011, 16:50     Сформируйте новую строку из пяти самых длинных слов. #2
С или С++?
asics
Freelance
Эксперт C++
2846 / 1783 / 144
Регистрация: 09.09.2010
Сообщений: 3,842
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;
}
Yandex
Объявления
21.04.2011, 21:01     Сформируйте новую строку из пяти самых длинных слов.
Ответ Создать тему
Опции темы

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