distance
Advanced Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору tynesss Цитата: Из произвольного текста, содержащего не более 10 строк, в каждой строке не более 80 символов, вывести на печать все слова содержащие не более четырех букв. | предпологается, что в функцию print_words поступает текст, уже проверенный на (... не более ...), далее только вывод результата: Код: #include <sstream> #include <vector> #include <iterator> #include <algorithm> #include <iostream> #include <functional> template < typename Iter1, typename Iter2, typename Pred> void copy_if(Iter1 beg, Iter1 end, Iter2 beg2, Pred f) { while (beg != end) { if (f(*beg)) *beg2++ = *beg; beg++; } } void print_words(const std::string& source) { std::stringstream ss(source); struct Op : public std::unary_function<std::string, bool> { result_type operator()(const argument_type& v) { return v.size() <= 4; } }; copy_if( std::istream_iterator<std::string>(ss), std::istream_iterator<std::string>(), std::ostream_iterator<std::string>(std::cout, " "), Op()); } |
|