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

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

Войти
Регистрация
Восстановить пароль
 
Aplake
6 / 6 / 1
Регистрация: 20.02.2011
Сообщений: 43
#1

Строки - C++

26.05.2011, 13:15. Просмотров 232. Ответов 1
Метки нет (Все метки)

Нужна помощь. Вводиться строка. Удалить из строки слова имеющие минимальную длину. Вывести полученную строку на экран.
Например
dog case pick castle war
case pick castle
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
gooseim
Эксперт С++
508 / 412 / 37
Регистрация: 23.09.2010
Сообщений: 1,159
26.05.2011, 17:13     Строки #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
#include <string>
#include <iostream>
#include <algorithm>
#include <iterator>
#include <sstream>
#include <list>
 
int main()
{
   std::string s("dog case pick castle war");
   std::istringstream str(s);
   std::istream_iterator<std::string> begin(str), end;
   std::list<std::string> list(begin, end);
         
   size_t minlen =   
      std::min_element(list.begin(), list.end(), 
         [](const std::string &s1, const std::string &s2) 
         {return s1.length()<s2.length();}
      )->length();   
      
   list.remove_if([=](const std::string &s1){return s1.length()==minlen;});
   
   std::copy(list.begin(), list.end(), std::ostream_iterator<std::string>(std::cout, " "));
   
}
Yandex
Объявления
26.05.2011, 17:13     Строки
Ответ Создать тему
Опции темы

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