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

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

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

Найти длину самого короткого и самого длинного слова, а также сами эти слова - C++

13.12.2012, 01:21. Просмотров 806. Ответов 8
Метки нет (Все метки)

Народ, помогите, пожалуйста, как мне написать код в с++ програмки, в которой дана строка, состоящая из слов, разделенных пробелами (одним или несколькими). Найти длину самого короткого и самого длинного слова, а также сами эти слова.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.12.2012, 01:21
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти длину самого короткого и самого длинного слова, а также сами эти слова (C++):

Строки (Найти длину самого короткого и самого длинного слова, а также сами эти слова) - C++
Люди, подскажите, плиз, как написать програмку в с++ за условием, что дана строка, состоящая из слов, разделенных пробелами (одним или...

Найти длину самого короткого слова и самого длинного слова в строке - C++
помогите!!! Дана строка, содержащая текст. Найти длину самого короткого слова и самого длинного слова.

Дана строка, содержащая текст. Найти длину самого короткого и самого длинного слова. - C++
1. Дана строка, содержащая текст. Найти длину самого короткого и самого длинного слова. 2. 14.14. Имеется строка, содержащая буквы...

Дана строка содержащая текст. Найти длину самого короткого и самого длинного слова. - C++
помогите написать программу =) очень нужно=) Дана строка содержащая текст. Найти длину самого короткого и самого длинного слова.

Найти длину самого короткого и самого длинного слова - C++
помогите решить Дана символьная строка, содержащая текст, который заканчивается точ¬кой. Найти длину самого короткого и самого длинного...

Найти длину самого короткого и самого длинного слова. - C++
Дана строка, содержащая текст. Найти длину самого короткого и самого длинного слова.

8
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,590
13.12.2012, 01:48 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
 
 
int main()
{
    std::string str;
    std::getline(std::cin, str);
    std::istringstream ist(str);
    auto res = std::minmax_element(std::istream_iterator<std::string>(ist),
        std::istream_iterator<std::string>(),
        [](const std::string &s1, const std::string &s2)
        {
            return s1.length() < s2.length();
        } );
    std::cout << "Min: " << *res.first << " with length "
              << res.first->length() << "\nMax: " << *res.second
              << " with length " << res.second->length() << std::endl;
}
1
papik1234567890
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 14
13.12.2012, 02:18  [ТС] #3
не работает(((
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,590
13.12.2012, 02:20 #4
http://liveworkspace.org/code/3t6VL5
0
papik1234567890
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 14
13.12.2012, 14:54  [ТС] #5
17 ошибок(
0
Пaтрик
416 / 391 / 39
Регистрация: 21.01.2012
Сообщений: 972
Завершенные тесты: 1
13.12.2012, 15:37 #6
papik1234567890, у MrGluck используется C++11. Ваш компилятор судя по всему его не поддерживает
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,590
13.12.2012, 16:44 #7
Цитата Сообщение от papik1234567890 Посмотреть сообщение
не работает(((
Работает, но не у вас.
Ввот для С++03
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
#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
 
bool cmp(const std::string &s1, const std::string &s2)
{
    return s1.length() < s2.length();
}
 
int main()
{
    std::string str, min, max;
    std::getline(std::cin, str);
    std::istringstream ist(str);
    min = *std::min_element(std::istream_iterator<std::string>(ist),
        std::istream_iterator<std::string>(), cmp);
    //ist.seekg(0);
    ist.clear();
    ist.str(str);
    max = *std::max_element(std::istream_iterator<std::string>(ist),
        std::istream_iterator<std::string>(), cmp);
 
    std::cout << "Min: " << min << " with length " << min.length() << "\nMax: "
              << max << " with length " << max.length() << std::endl;
}
1
papik1234567890
0 / 0 / 0
Регистрация: 13.12.2012
Сообщений: 14
14.12.2012, 19:30  [ТС] #8
Спасибо огромное))) а можете комменты написать, если не тяжело?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7491 / 4606 / 692
Регистрация: 29.11.2010
Сообщений: 12,590
14.12.2012, 21:41 #9
Цитата Сообщение от papik1234567890 Посмотреть сообщение
Спасибо огромное))) а можете комменты написать, если не тяжело?
Не тяжело
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
#include <iostream>
#include <sstream>
#include <algorithm>
#include <iterator>
 
bool cmp(const std::string &s1, const std::string &s2) // описываем компаратор (как будем сравнивать строки)
{
    return s1.length() < s2.length();
}
 
int main()
{
    std::string str, min, max;
    std::getline(std::cin, str); // считываем строку до первого '\n', т.е. до нажатия Enter
    std::istringstream ist(str); // инициализируем строковый поток ввода строкой
    min = *std::min_element(std::istream_iterator<std::string>(ist), // находим слово с минимальной длиной, min_element возвращает итератор на него, поэтому разыменовываем. 
        std::istream_iterator<std::string>(), cmp); // проходимся по всему потоку, извлекая из него данные как std::string, используя описанный компаратор
    //ist.seekg(0);
    ist.clear(); // очищаем поток, т.к. флаги установлены на конец потока
    ist.str(str); // заново инициализируем его той же строкой, но теперь уже не в конструкторе а специальным методом
    max = *std::max_element(std::istream_iterator<std::string>(ist), // находим максимально длинное слово по тому же принципу, что и выше
        std::istream_iterator<std::string>(), cmp);
 
    std::cout << "Min: " << min << " with length " << min.length() << "\nMax: " // выводим результат на экран
              << max << " with length " << max.length() << std::endl;
}
0
14.12.2012, 21:41
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.12.2012, 21:41
Привет! Вот еще темы с ответами:

Найти длину самого длинного и самого короткого слова - C++
Дана строка символов. Найти длину самого длинного и самого короткого символа. Написать задачу с обращением к процедуре...

Определить длину самого длинного и самого короткого слова - C++
Помогите пожалуйста Я не понимаю как написать ввести массив символов, содержащий текст. Определить длину самого длинного и самого...

Разработать программу, осуществляющую поиск самого короткого и самого длинного слова во вводимом тексте - C++
Разработать программу, осуществляющую поиск самого короткого и самого длинного слова во вводимом тексте. С комментами)

Поиск самого короткого и самого длинного слова массива - C++
Возникла проблема, программа наименьшим считает всегда первое слово #include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;locale&gt; ...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

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