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

Вывести слова предложения написаные заглавными буквами

06.02.2019, 19:24. Просмотров 1814. Ответов 16
Метки нет (Все метки)

Вывести на экран слова предложения, которые написаны большими буквами
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2019, 19:24
Ответы с готовыми решениями:

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

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

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

Дано два предложения (Распечатать слова из первого предложения, который начинаются на первую букву последнего слова второго предложения)
Дано два предложения. Распечатать: - слова из первого предложения, который начинаются на первую...

Дан файл, содержащий текст, записанный строчными русскими буквами. Получить в другом файле тот же текст, записанный заглавными буквами
Дан файл, содержащий текст, записанный строчными русскими буквами. Получить в другом файле тот же...

16
Михаиллллллл
64 / 55 / 13
Регистрация: 16.03.2017
Сообщений: 426
06.02.2019, 19:55 2
Попробуйте разбить текст на слова, полученный массив прогнать через иф сравнивать первую букву слова массива со всеми заглавными, если условие верно то выводите и так далее
0
Аня1987
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 15
06.02.2019, 20:01  [ТС] 3
это понятно, мне бы код а то у меня ничего не выходит(
0
SomniPhobia
352 / 256 / 101
Регистрация: 22.11.2017
Сообщений: 707
06.02.2019, 20:05 4
Аня1987, привет!
Вот код.
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#include <iostream>
#include <xstring>
#include <string>
#include <algorithm>
#include <vector>
 
using namespace std;
 
template<class T>
vector<T> split(const T &s, const T &separators);
 
int main()
{
    system("color 0A");
    wcout.imbue(locale("rus_rus.866"));
    wcin.imbue(locale("rus_rus.866"));
 
    wcout << L"Введите текст" << endl;
    wstring s;
    getline(wcin, s);
    auto words = split(s, wstring(L" .,!?()[]\":'@#№$;&{}"));
    for (const auto &word : words)
    {
        wchar_t c = word[0u];
        setlocale(LC_ALL, "Russian");
        if (c == towupper(c) && c != towlower(c))
        {
            setlocale(LC_ALL, "C");
            wcout << word << endl;
        }
    }
    wcout << endl;
    
    system("pause");
    return 0;
}
 
template<class T>
vector<T> split(const T &s, const T &separators)
{
    vector<T> words;
    T word;
    for (const auto &c : s)
    {
        bool is_separator = (separators.find(c) != T::npos);
        if (is_separator && !word.empty())
        {
            words.push_back(word);
            word.clear();
        }
        else if (!is_separator)
        {
            word.push_back(c);
        }
    }
    if (!word.empty())
    {
        words.push_back(word);
    }
    return words;
}
0
Миниатюры
Вывести слова предложения написаные заглавными буквами  
06.02.2019, 20:05
Cortas
213 / 142 / 78
Регистрация: 14.03.2016
Сообщений: 456
Завершенные тесты: 5
06.02.2019, 20:12 5
SomniPhobia, мне кажется автор имел ввиду не с больших букв, а все слово большими буквами, так, Аня1987?
Если я правильно понял, то я бы использовал регулярки:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <iostream>
#include <string>
#include <regex>
 
using namespace std;
 
int main()
{
    regex pattern("(\\b[A-Z]+\\b)");//по какому паттерну будем искать
    string str = "Some Words ARE Writed with BIG LETTERS, do U know IT?"; //строка
 
    auto begin = sregex_iterator(str.begin(), str.end(), pattern); //поиск по строке
    auto end = sregex_iterator();
 
    while(begin != end)//вывод всего, что нашлось
    {
        cout << ( *begin ).str() << endl;
        begin++;
    }
 
    system("pause>nul");
    return 0;
}
0
Аня1987
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 15
06.02.2019, 20:17  [ТС] 6
В 26 видимо ошибка

Добавлено через 2 минуты
а можно так сделать что бы когда я вводила слова потом выводились те которые с большой буквы?
0
SomniPhobia
352 / 256 / 101
Регистрация: 22.11.2017
Сообщений: 707
06.02.2019, 20:19 7
Cortas, Аня1987, тогда так.
Я бы тоже регулярки использовал, но я их не люблю.
Вот код, что ищет в предложении слова написанные только заглавными буквами.
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
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
#include <iostream>
#include <xstring>
#include <string>
#include <algorithm>
#include <vector>
 
using namespace std;
 
template<class T>
vector<T> split(const T &s, const T &separators);
 
wstring wstring_towlower(const wstring &s);
 
wstring wstring_towupper(const wstring &s);
 
int main()
{
    system("color 0A");
    wcout.imbue(locale("rus_rus.866"));
    wcin.imbue(locale("rus_rus.866"));
 
    wcout << L"Введите текст" << endl;
    wstring s;
    getline(wcin, s);
    auto words = split(s, wstring(L" .,!?()[]\":'@#№$;&{}"));
    for (const auto &word : words)
    {
        if (word == wstring_towupper(word) && word != wstring_towlower(word))
        {
            wcout << word << endl;
        }
    }
    wcout << endl;
    
    system("pause");
    return 0;
}
 
template<class T>
vector<T> split(const T &s, const T &separators)
{
    vector<T> words;
    T word;
    for (const auto &c : s)
    {
        bool is_separator = (separators.find(c) != T::npos);
        if (is_separator && !word.empty())
        {
            words.push_back(word);
            word.clear();
        }
        else if (!is_separator)
        {
            word.push_back(c);
        }
    }
    if (!word.empty())
    {
        words.push_back(word);
    }
    return words;
}
 
wstring wstring_towlower(const wstring &s)
{
    wstring output;
    setlocale(LC_ALL, "Russian");
    transform(s.begin(), s.end(), back_inserter(output), ::towlower);
    setlocale(LC_ALL, "C");
    return output;
}
 
wstring wstring_towupper(const wstring &s)
{
    wstring output;
    setlocale(LC_ALL, "Russian");
    transform(s.begin(), s.end(), back_inserter(output), ::towupper);
    setlocale(LC_ALL, "C");
    return output;
}
Добавлено через 1 минуту
Цитата Сообщение от Аня1987 Посмотреть сообщение
а можно так сделать что бы когда я вводила слова потом выводились те которые с большой буквы?
Мой верхний код это делает. Ошибок нет. Я отлаживал - у меня всё работает.
0
Аня1987
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 15
06.02.2019, 20:23  [ТС] 8
у меня что-то не компилируется (я с онлайн компилятора)
0
SomniPhobia
352 / 256 / 101
Регистрация: 22.11.2017
Сообщений: 707
06.02.2019, 20:25 9
Цитата Сообщение от Аня1987 Посмотреть сообщение
(я с онлайн компилятора)
Этим всё сказано.
Я с Visual Studio.
Попробуй убрать все строки
C++
1
2
setlocale(LC_ALL, "Russian");
setlocale(LC_ALL, "C");
Английские слова точно норм будет искать, русские - не гарантирую.
0
Cortas
213 / 142 / 78
Регистрация: 14.03.2016
Сообщений: 456
Завершенные тесты: 5
06.02.2019, 20:28 10
Цитата Сообщение от Аня1987 Посмотреть сообщение
те которые с большой буквы
Если хотите использовать регулярки, то pattern поменяйте на "(\\b[A-Z][a-z]*\\b)"
0
Аня1987
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 15
06.02.2019, 20:30  [ТС] 11
не помогло( попробуй зайти https://repl.it/repls/StupendousBriskDeletion сюда и тут попробовать
0
Cortas
213 / 142 / 78
Регистрация: 14.03.2016
Сообщений: 456
Завершенные тесты: 5
06.02.2019, 20:50 12
Лучший ответ Сообщение было отмечено Аня1987 как решение

Решение

Аня1987, все работает.
Вывести слова предложения написаные заглавными буквами
1
Cortas
213 / 142 / 78
Регистрация: 14.03.2016
Сообщений: 456
Завершенные тесты: 5
06.02.2019, 20:52 13
А вот результат с др. ( "(\\b[A-Z][a-z]*\\b)" ) паттерном:
Вывести слова предложения написаные заглавными буквами
0
Аня1987
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 15
06.02.2019, 20:55  [ТС] 14
а ты случайно не умеешь делать блок схемы к программам?
0
Cortas
213 / 142 / 78
Регистрация: 14.03.2016
Сообщений: 456
Завершенные тесты: 5
06.02.2019, 21:05 15
Лучший ответ Сообщение было отмечено Аня1987 как решение

Решение

Аня1987, да, но делать этого не люблю.
0
Аня1987
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 15
06.02.2019, 21:07  [ТС] 16
ну ладно)
0
Аня1987
0 / 0 / 0
Регистрация: 06.02.2019
Сообщений: 15
07.02.2019, 12:13  [ТС] 17
Cortas, Массив: Разделить элементы каждого столбца заданной матрицы на последний элемент столбца. помоги пожалуйста
0
07.02.2019, 12:13
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.02.2019, 12:13

Для чего используется INTEGER заглавными буквами?
Меня на собеседовании спросили: для чего используется INTEGER заглавными буквами? Про обычный...

Вывести слова данного предложения, которые отличны от последнего слова
Разработать алгоритм и составить программу на языке Си. Предполагается, что длина вводимого текста...

:Вывести все слова предложения, содержащие последнюю букву предыдущего слова не менее 2 раз
Делаю задание:Вывести все слова предложения, содержащие последнюю букву предыдущего слова не менее...


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

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

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