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

Нужно найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!" - C++

Восстановить пароль Регистрация
 
qwer1234
12 / 12 / 3
Регистрация: 30.10.2012
Сообщений: 463
27.02.2014, 00:49     Нужно найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!" #1
Вводится массив строк символов. Необходимо найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!". Нужно решить с использованием функций.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2014, 00:49     Нужно найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!"
Посмотрите здесь:

C++ Дана матрица размера МхН.Найти номер ее строки с наибольшей суммой элементов и вывести данный номер, а также значение наибольшей суммы.
В тексте найти и вывести слово наибольшей длины, в котором нет заданной буквы C++
Строки. Удалить слова наибольшей длины C++
C++ Преобразовать строку, вырезав каждый символ "*" и повторив каждый символ, отличный символ "*"
C++ Матрица. Найти номер ее ряда с наибольшей суммой элементов и вывести данный ее номер, а также значение наибольшей суммы
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
rrrFer
Заблокирован
27.02.2014, 18:11     Нужно найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!" #2
Необходимо найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!"
Не помогло что-ли?

Код
#include <vector>
#include <string>
#include <algorithm>
#include <iostream>
 
bool less(const std::string &a, const std::string &b) { return a.length() < b.length(); } // функция
 
int main() {
    std::vector<std::string> strings;
    std::string tmp;
    
    strings.push_back("asd");
    strings.push_back("asghdd");
    strings.push_back("123");
    
    tmp = *std::max_element(strings.begin(), strings.end(), less);
        
    std::cout << tmp << std::endl;
    
    std::for_each(strings.begin(), strings.end(), 
        [=](std::string &a) { a += std::string(tmp.length() - a.length(), '!'); });
    
    for (auto t : strings) 
        std::cout << t << std::endl;
}
Добавлено через 4 минуты
Цитата Сообщение от rangerx Посмотреть сообщение
Как минимум, можно реализовать функцию поиска строки наибольшей длины, остальное зависит от того, как по заданию нужно хранить строки, char[] или std::string.
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 <vector>
#include <string>
#include <algorithm>
#include <iostream>
 
bool less(const std::string &a, const std::string &b) { return a.length() < b.length(); } // функция
 
std::string longest_string(const std::vector<std::string>& strings) {
    return *std::max_element(strings.begin(), strings.end(), less);
}
 
int main() {
    std::vector<std::string> strings;
    std::string tmp;
    
    strings.push_back("asd");
    strings.push_back("asghdd");
    strings.push_back("123");
    
    tmp = longest_string(strings);
        
    std::cout << tmp << std::endl;
    
    std::for_each(strings.begin(), strings.end(), 
        [=](std::string &a) { a += std::string(tmp.length() - a.length(), '!'); });
    
    for (auto t : strings) 
        std::cout << t << std::endl;
}
Так что-ли?
qwer1234
12 / 12 / 3
Регистрация: 30.10.2012
Сообщений: 463
27.02.2014, 22:45  [ТС]     Нужно найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!" #3
rrrFer, она у меня не работает(
rrrFer
Заблокирован
27.02.2014, 22:50     Нужно найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!" #4
Цитата Сообщение от qwer1234 Посмотреть сообщение
rrrFer, она у меня не работает(
наверное ошибки выдает какие-то? Или просто берет и молча не работает?
qwer1234
12 / 12 / 3
Регистрация: 30.10.2012
Сообщений: 463
27.02.2014, 22:59  [ТС]     Нужно найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!" #5
rrrFer, ошибки, могу скинуть какие

Добавлено через 1 минуту
rrrFer, + ко всему мне нужно с использованием функций, а у вас решено классами
Somebody
2770 / 1583 / 141
Регистрация: 03.12.2007
Сообщений: 4,139
Завершенные тесты: 1
27.02.2014, 23:30     Нужно найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!" #6
Цитата Сообщение от rrrFer Посмотреть сообщение
C++
1
a += std::string(tmp.length() - a.length(), '!');
C++
1
a.resize(newLength, '!');
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2014, 05:26     Нужно найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!"
Еще ссылки по теме:

C++ В матрице размерностью MxN найти номер строки с наибольшей суммой элементов и вывести данный номер, а также значение наибольшей суммы
Необходимо найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!" C++
Перевести с Pasсal на C++ (Найти палиндром наибольшей длины) C++

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

Или воспользуйтесь поиском по форуму:
rrrFer
Заблокирован
28.02.2014, 05:26     Нужно найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!" #7
Цитата Сообщение от qwer1234 Посмотреть сообщение
rrrFer, + ко всему мне нужно с использованием функций, а у вас решено классами
Но а ты не видишь что используется 3 функции? (не видишь - дак в комментарии посмотри).
Цитата Сообщение от qwer1234 Посмотреть сообщение
rrrFer, ошибки, могу скинуть какие
Если спрашивают "какие ошибки?" - то явно можно скидывать без предупреждения. Или ты угрожаешь скинуть ошибки? (я просто не пойму, зачем все эти преамбулы и что они значат).
Yandex
Объявления
28.02.2014, 05:26     Нужно найти строку наибольшей длины и увеличить остальные строк в массиве к длине наибольшей строки, используя символ "!"
Ответ Создать тему
Опции темы

Текущее время: 15:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru