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

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

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

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
IrineK
Заблокирован
21.04.2011, 16:50     Сформируйте новую строку из пяти самых длинных слов. #2
С или С++?
asics
Freelance
Эксперт C++
 Аватар для asics
2838 / 1775 / 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     Сформируйте новую строку из пяти самых длинных слов.
Ответ Создать тему
Опции темы

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