Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
Atantares
0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 9
1

Строки: вывести слова с наименьшим количеством букв; удалить слова, начинающиеся с маленькой буквы

15.11.2016, 15:35. Просмотров 924. Ответов 5
Метки нет (Все метки)

Здравствуйте. Помогите, пожалуйста сделать программу...
Задание:
Составить программу, которая выводит на экран слова с наименьшим количеством букв, и отдельно удалить все слова начинающиеся с маленькой буквы и вывести оставшейся слова. (Строку вводить с клавиатуры)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
15.11.2016, 15:35
Ответы с готовыми решениями:

В заданной строке вывести все слова, имеющие наименьшее количество букв и удалить начинающиеся с маленькой буквы
С клавиатуры вводиться строка, написать программу 1) которая выводит на экран...

Удалить из введенной строки все слова, начинающиеся с маленькой буквы
С клавиатуры вводится текстовая строка. Составить программу, которая удаляет...

Удалить из строки слова, начинающиеся с одинаковой буквы
Здравствуйте! Помогите, пожалуйста, с решением такой задачи: составить...

Вывести все слова из строки, начинающиеся с определенной буквы
Написать программу,которая выводит все слова из строки,начинающиеся с...

Вывести все слова, начинающиеся с большой буквы, из заданной строки
С клавиатуры вводится строка S. Она содержит различные символы и пробелы. Части...

5
MrGluck
Модератор
Эксперт CЭксперт С++
8101 / 4952 / 1436
Регистрация: 29.11.2010
Сообщений: 13,437
15.11.2016, 16:03 2
Лучший ответ Сообщение было отмечено Croessmah как решение

Решение

Непонятна фраза
Цитата Сообщение от Atantares Посмотреть сообщение
удалить и вывести
Сделал так, что выводит оставшиеся после удаления:
Т.к. вы не указали откуда брать слова, решил генерить их программно. Стоит заметить, что в распределении A-z попадаются 6 символов "мусора", но вроде бы никаких ограничений в задании на это нет.
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
#include <algorithm>
#include <cctype>
#include <functional>
#include <iostream>
#include <iterator>
#include <random>
#include <string>
#include <vector>
 
int main()
{
    std::uniform_int_distribution<int> charDist('A', 'z'); // включая 6 символов мусора
    std::uniform_int_distribution<int> lengthDist(1, 15);
    std::default_random_engine gen { std::random_device()() };
    std::function<int()> charGen   = std::bind(charDist,   std::ref(gen));
    std::function<int()> lengthGen = std::bind(lengthDist, std::ref(gen));
 
    const size_t numWords = 7;
    std::vector<std::string> words(numWords);
    std::generate(words.begin(), words.end(), [&charGen, &lengthGen]
    {
        std::string result;
        std::generate_n(std::back_inserter(result), lengthGen(), charGen);
        return result;
    });
 
    std::copy(words.cbegin(), words.cend(), std::ostream_iterator<std::string>(std::cout, " "));
    std::cout << std::endl;
 
    auto lessLength = [](const std::string &lhs, const std::string &rhs)
    {
        return lhs.length() < rhs.length();
    };
    const auto minLength = std::min_element(words.cbegin(), words.cend(), lessLength)->length();
    std::copy_if(words.cbegin(), words.cend(), std::ostream_iterator<std::string>(std::cout, " "),
        [minLength](const std::string &str) { return str.length() == minLength; });
    std::cout << std::endl;
 
    std::remove_copy_if(words.cbegin(), words.cend(), std::ostream_iterator<std::string>(std::cout, " "),
        [](const std::string &str) { return islower(str.front()); });
}
1
Atantares
0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 9
15.11.2016, 16:07  [ТС] 3
Извиняюсь, исправил задание.
Задание:
Составить программу, которая выводит на экран слова с наименьшим количеством букв, и отдельно удалить все слова начинающиеся с маленькой буквы и вывести оставшейся слова. (Строку вводить с клавиатуры)

А возможно ли заменить string на char? Я начинающий, со стрингами плохо работаю еще
0
MrGluck
Модератор
Эксперт CЭксперт С++
8101 / 4952 / 1436
Регистрация: 29.11.2010
Сообщений: 13,437
15.11.2016, 16:19 4
Цитата Сообщение от Atantares Посмотреть сообщение
Я начинающий, со стрингами плохо работаю еще
Ну вы поняли
Строки: вывести слова с наименьшим количеством букв; удалить слова, начинающиеся с маленькой буквы
0
MrGluck
Модератор
Эксперт CЭксперт С++
8101 / 4952 / 1436
Регистрация: 29.11.2010
Сообщений: 13,437
15.11.2016, 16:42 5
Лучший ответ Сообщение было отмечено Atantares как решение

Решение

На голых char массивах. Хотя "со стрингами" тут было бы проще
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
#include <cctype>
#include <cstring>
#include <iostream>
#include <sstream>
 
int main()
{
    const size_t N = 128;
    char str[N], word[N];
    std::cin.getline(str, sizeof(str));
    std::istringstream ist(str);
    std::ostringstream ost;
 
    size_t minLen = N;
    while (ist >> word)
    {
        const size_t curLen = strlen(word);
        if (curLen < minLen)
            minLen = curLen;
 
        if (!islower(word[0]))
            ost << word << " ";
    }
 
    std::cout << "Words with smallest length: ";
    ist.clear();
    ist.str(str);
    while (ist >> word)
    {
        const size_t curLen = strlen(word);
        if (minLen == curLen)
            std::cout << word << " ";
    }
 
    std::cout << "\nWords, that are not started from lower char: " << ost.str() << std::endl;
}
0
Atantares
0 / 0 / 0
Регистрация: 23.07.2016
Сообщений: 9
15.11.2016, 17:52  [ТС] 6
Спасибо, помогли
0
15.11.2016, 17:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.11.2016, 17:52

Вывести слова, в которых нет повторяющихся букв и буквы слова упорядочены по алфавиту
Дан текст. Вывести слова, в которых нет повторяющихся букв и буквы слова...

В предложении удалить слова, начинающиеся с данной буквы
необходимо проверить начинаются ли слова в предложении с вводимой пользователем...

В заданном тексте удалить слова, начинающиеся с заданной буквы
В заданном тексте удалить слова, начинающиеся с заданной буквой. При написании...


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

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

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