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

Строки: найти самое короткое и самое длинное слово - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Матрица. Поменять наибольший элемент и диагональный элемент http://www.cyberforum.ru/cpp-beginners/thread68493.html
Помогите пожалуйста .... Дана целочисленная квадратная матрица. Найти в каждой строке наибольший элемент и поменять его местами с элементом главной диагонали.
C++ Нужно подредактировать прогу В файле myfile.txt содержится информация типа а= 1,0; b = 5; с = 25,2; d = -l2,5. Написать функцию, которая получает строку типа «а + b = », «c*d = » или «b/d = », выбирает из файла необходимые... http://www.cyberforum.ru/cpp-beginners/thread68474.html
C++ Вычислить
Даны действительные числа а1, а2, ....а10. Вычислить а1+а2^2+....+a10^10. Добавлено через 24 секунды #include <iostream> using namespace std; int main() { const int n=10; double a; ...
Пререгрузка операций с структурах C++
Как перегрузить операцию вывода в структуре?Помогоите плиз,не могу понять...вот исходная структура(к примеру) struct guitar { int string; char name; int hambacker; ...
C++ Записать в файл все члены последовательности, которые не меньше заданного eps http://www.cyberforum.ru/cpp-beginners/thread68451.html
Последовательность x1, x2, ... образована по закону: x_i=\frac{i-0.1}{i^3+\left|tg\,2i \right|}\;(i=1,2,...) Дано действительное \varepsilon \gt 0. Записать в файл h члены последовательности x1,...
C++ Два задания по одномерным массивам. 1. Дан вещественный массив А. Определить количество и индексы тех элементов массива, которые меньше элементов, стоящих в соседних позициях справа и слева, но больше минимального элемента массива. ... подробнее

Показать сообщение отдельно
Rififi
2359 / 1052 / 44
Регистрация: 03.05.2009
Сообщений: 2,656
01.12.2009, 01:27
Катюша

Пожалуйста помогите... а то у меня не выходит.
А лабу надо здать...

Дана строка текста, в которой слова разделены пробелами. Необходимо:
- определить количество слов в строке;
- найти самое короткое и самое длинное слово и вывести их на экран;
- исключить из строки первое и последнее слова и вывести текст, который остался.


Это тебе для освобождения от зачётов. Шоб никто не сомневался - бландинки рулят!!!

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
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#include <locale>
#include <string>
#include <vector>
#include <algorithm>
#include <iterator>
#include <sstream>
#include <iostream>
 
#include <boost/algorithm/minmax_element.hpp>
#include <boost/lambda/lambda.hpp>
#include <boost/lambda/bind.hpp>
using namespace boost::lambda;
 
/*
Дана строка текста, в которой слова разделены пробелами. Необходимо:
- определить количество слов в строке;
- найти самое короткое и самое длинное слово и вывести их на экран;
- исключить из строки первое и последнее слова и вывести текст, который остался. 
*/
 
int main()
{
    setlocale(LC_ALL, "");
 
    std::string s;
    std::cin >> s;
 
    typedef std::vector<std::string> V;
    V v;
 
    typedef std::istream_iterator<V::value_type> I;
 
    std::stringstream ss(s);
    std::copy(I(ss), I(), std::back_inserter(v));
 
    std::cout << "Количество слов: " << v.size() << std::endl;
 
    if (v.size() < 2)
    {
        std::cerr << "Малавата слов, насяльника!" << std::endl;
        return 1;
    }
 
    std::string::size_type (std::string::* const sz)() const = &std::string::size;
    
    typedef std::pair<V::const_iterator, V::const_iterator> Info;
    const Info info = boost::minmax_element(v.begin(), v.end(), 
        bind(sz, _1) < bind(sz, _2)
        );
 
    std::cout << "Минимальный элемент: " << *info.first << std::endl;
    std::cout << "Максимальный элемент: " << *info.second << std::endl;
 
    std::cout << "Строка без первого и последнего слова: " << std::endl;
    
    typedef std::ostream_iterator<V::value_type> O;
    std::copy(++v.begin(), --v.end(), O(std::cout, " "));
 
    return 0;
}
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru