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

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

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

Вывести на экран самое короткое слово заданной строки (если их несколько, то первое) - C++

20.05.2014, 09:53. Просмотров 417. Ответов 5
Метки нет (Все метки)

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

Определить самое короткое слово предложения, первое, если таких несколько. - C++
Всем доброго времени суток! Пару дней назад начал изучение Си. Задали д/з...Вот собственно условие: В тексте, записанном в строке S,...

Вывести самое длинное и самое короткое слово из строки - C++
Хочу сделать через strtok, но толком не знаю как именно. #include <iostream> #include <string.h> #include <conio.h> #include...

Ввести строку, содержащую несколько слов. Определить самое длинное и самое короткое слово - C++
Здравствуйте, не могли бы мне помочь с кодом. Как его переписать, чтобы программа работала? #include <iostream> #include <cstdlib> ...

В заданной строке определить самое длинное и самое короткое слово - C++
Ввести несколько строк,каждая из которых содержит некоторое количество слов.В заданной строке определить самое длинное и самое короткое...

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

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

5
YouDoItWrong
47 / 47 / 7
Регистрация: 29.10.2011
Сообщений: 154
20.05.2014, 10:54 #2
Добавлено через 27 минут
C вводом с клавиатуры.
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
#include <iostream>
#include <vector>
#include <string>
#include <limits>
#include <sstream>
#include <algorithm>
#include <iterator>
 
int main()
{
    std::vector<std::string> strings;
 
    std::string sentence;
    std::getline(std::cin, sentence);
    std::istringstream iss(sentence);
 
    std::copy(std::istream_iterator<std::string>(iss),
             std::istream_iterator<std::string>(),
             std::back_inserter<std::vector<std::string>>(strings));
 
    std::string min = *std::min_element(strings.begin(), strings.end(), [](const std::string &a, const std::string &b) -> bool
    {
            if (a.size() < b.size())
                return true;
            return false;
    });
 
    std::cout << min << std::endl;
    return 0;
}
0
Лилит
0 / 0 / 0
Регистрация: 20.05.2014
Сообщений: 3
20.05.2014, 11:46  [ТС] #3
Спасибо большоеее!
0
outoftime
║XLR8║
754 / 654 / 88
Регистрация: 25.07.2009
Сообщений: 3,289
Записей в блоге: 5
20.05.2014, 12:26 #4
Лилит, YouDoItWrong,
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <vector>
#include <string>
#include <iterator>
#include <algorithm>
 
int main () {
    typedef std::istream_iterator<std::string> in;
    std::vector<std::string> words{in{std::cin}, in{}};
    std::sort(words.begin(), words.end(), 
        [](const std::string& a, const std::string& b){ return a.size() < b.size(); });
    std::cout << words.begin()->c_str() << std::endl;
}
Так короче (:
Bash
1
2
3
4
ruslan@TFTM-K53TA:~/Programming/c++/cyberforum$ make && ./main 
clang++ main.cpp -o main -std=c++11 -W
ab b
b
Добавлено через 3 минуты
Сортировку можно менять, в данном случае она не нужна.
C++
1
2
    std::string min = *std::min_element(words.begin(), words.end(), 
        [](const std::string& a, const std::string& b){ return a.size() < b.size(); });
0
YouDoItWrong
47 / 47 / 7
Регистрация: 29.10.2011
Сообщений: 154
20.05.2014, 13:04 #5
Цитата Сообщение от outoftime Посмотреть сообщение
Так короче (:
Бесконечно считывает строку. (MinGW 4.8.2)
Bash
1
2
3
4
5
6
7
8
9
10
11
12
Microsoft Windows [Version 6.3.9600]
(c) 2013 Microsoft Corporation. All rights reserved.
 
D:\>cd Projects
 
D:\Projects>g++ test.cpp -o test.exe -Wall -pedantic -pipe -march=native -O2 -std=c++11
 
D:\Projects>test.exe
asd AA a
AAAA Aass AssfZ
^C
D:\Projects>
0
outoftime
║XLR8║
754 / 654 / 88
Регистрация: 25.07.2009
Сообщений: 3,289
Записей в блоге: 5
20.05.2014, 13:49 #6
YouDoItWrong, Ctrl+Z для винды - конец ввода.
0
20.05.2014, 13:49
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
20.05.2014, 13:49
Привет! Вот еще темы с ответами:

Вывести на экран самое длинное слово из строки. - C++
Строка, введенная пользователем, состоит из слов, разделенных запятой. Вывести на экран самое длинное слово из строки.

Вывести самое короткое слово - C++
Вывести самое короткое слово введенной с клавиатуры текстовой строки. Помогите пожалуйста завтра нужно сдать. Заранее спасибо

Найти самое короткое слово. Строки - C++
помогите бедной студентке =) Условие) Строки. Дан текст. Найти самое короткое слово.

Из введенного текста вывести самое короткое слово - C++
Ребята помогите написать элементарную программу : Из введенного текста вывести самое короткое слово. (4 часа сижу никак не получается)


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

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

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