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

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

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

Запомнить самую длинную строку и выдать её после окончания работы цикла ввода - C++

28.04.2017, 13:17. Просмотров 161. Ответов 6
Метки нет (Все метки)

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

[C] Найти самую длинную строку и поместить ее после самой короткой - C++
Найти самую длинную строку и поместить ее после самой короткой.

Найти самую длинную строку в файле - C++
Есть задача: Дан произвольный файл с некоторым количеством строк. Найти самую длинную строку и вывести ее. Попытался реализовать...

Найти самую длинную строку в файле - C++
Вроде все норм, вот только когда пытаюсь вывести через puts() - выводит все содержимое файла посимвольно и в столбик, а через Printf() -...

Определить самую длинную строку в тексте - C++
Определить самую длинную строку в тексте. Найденную строку передавать в главную функцию. И ещё, не могу понять почему если задать размер...

Удалить самую длинную строку матрицы - C++
1. Критерий для поиска в массиве структур: Сотрудники со стажем более 10 лет и заработной платой более 15000! 2. Задача для обработки...

Записать в файл последовательность строк. Самую длинную строку удалить - C++
Записать в файл последовательность строк. Самую длинную строку удалить. Помогите новичку

6
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
28.04.2017, 14:10 #2
C++
1
2
3
4
5
6
7
8
9
10
11
#include <iostream>
#include <string>
 
int main()
{
    std::string maxLenStr, str;
    while (std::cin >> str)
        if (maxLenStr.length() < str.length())
            maxLenStr = str;
    std::cout << maxLenStr << std::endl;
}
0
alexjun
18 / 18 / 5
Регистрация: 13.02.2017
Сообщений: 99
Завершенные тесты: 1
28.04.2017, 14:12 #3
MrGluck, а кстати, по какой команде цикл прерывается? по умолчанию ввод идет с клавиатуры?
0
GoldenId
89 / 130 / 32
Регистрация: 11.11.2010
Сообщений: 770
Записей в блоге: 14
Завершенные тесты: 1
28.04.2017, 14:20 #4
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
#include <algorithm>
#include <chrono>
#include <iostream>
#include <iterator>
#include <random>
#include <sstream>
#include <string>
 
class sym_filt
{
    std::string longest{ "" };
public:
    void accept( const std::string& s )
    {
        if( s.length() > longest.length() )
            longest = s;
    }
 
    const std::string obtain() const
    {
        return longest;
    }
};
 
int main()
{
    sym_filt filt;
 
    std::default_random_engine gen{ std::chrono::system_clock::now().time_since_epoch().count() };
    std::uniform_int_distribution<char> ch_distr( 'a', 'z' );
    std::poisson_distribution<int> len_distr( 10 );
    std::poisson_distribution<int> num_distr( 10 );
    int num = num_distr( gen );
    for( int i = 0; i < num; i++ )
    {
        int len = len_distr( gen );
        std::stringstream ss;
        std::generate_n( std::ostream_iterator<char>( ss ),
                        len,
                        [&ch_distr, &gen] () { return ch_distr( gen ); } );
        filt.accept( ss.str() );
    }
    std::cout << filt.obtain();
    std::cin.get();
}
0
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
28.04.2017, 15:46 #5
Цитата Сообщение от alexjun Посмотреть сообщение
MrGluck, а кстати, по какой команде цикл прерывается? по умолчанию ввод идет с клавиатуры?
На винде, например, Ctrl + Z
0
alexjun
18 / 18 / 5
Регистрация: 13.02.2017
Сообщений: 99
Завершенные тесты: 1
28.04.2017, 16:04 #6
MrGluck, т.е. после окончания ввода последней строки нажимаем ctrl+z и это работает как конец строки и как конец работы cin<<?
А в никсах какое?
0
MrGluck
Модератор
Эксперт CЭксперт С++
7801 / 4845 / 754
Регистрация: 29.11.2010
Сообщений: 13,212
28.04.2017, 16:07 #7
Это EOF, который в итоге для cin >> даст false и цикл прекратит выполняться.
Для Unix Ctrl + D
0
28.04.2017, 16:07
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.04.2017, 16:07
Привет! Вот еще темы с ответами:

Дан текстовый файл.Найти самую длинную строку и её длину - C++
Помогите, подготовиться к отчету.Дан текстовый файл.Найти самую длинную строку и её длину.на языке С++.

Найти в файле самую длинную строку и переписать её в другой файл - C++
всем привет возник такой вопрос есть файл в который вносятся числа разного количества. по этому есть несколько строк введённых чисел....

Указатели. Сформировать массив строк. Удалить из него самую длинную строку - C++
Сформировать массив строк. Удалить из него самую длинную строку Добавлено через 16 часов 19 минут Что никто не знает как??

Открыть заданный текстовый файл, найти в нем и вывести на экран самую длинную строку - C++
Открыть заданный текстовый файл, найти в нем и вывести на экран самую длинную строку. Имя файла должно передаваться в программу в виде...


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

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

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