Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/40: Рейтинг темы: голосов - 40, средняя оценка - 5.00
0 / 0 / 1
Регистрация: 12.07.2017
Сообщений: 55

Поиск слов, начинающихся с заглавной буквы

16.07.2017, 13:31. Показов 7752. Ответов 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
#include<iostream>
#include<string>
using namespace std;
 
int main()
 
{
    string s;
 
    s = "This is a test String. This is a test String";
    
    for (size_t i = 0; i < s.size(); ++i)
    {
        if (s[i] == ' '|| s[i] == '.')
        {
            if (isupper(s[0]))
            {
                
            }
        }
    }
return 0;
}
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
16.07.2017, 13:31
Ответы с готовыми решениями:

Посчитать в тексте количество слов с заглавной буквы
сколько в заданом тексте собственных имен? :-|немогу написать код в лабе.. в итоге программа должно посчитать количество слов с большой...

Подсчитать количество слов, начинающихся с буквы “a”
Подсчитать количество слов, начинающихся с буквы “a”.?? помогите с решением..

Найти количество слов, начинающихся с буквы б
Даны натуральное число n, символы s1,...,sn. Группы символов, разделенные пробелами(одним или несколькими) и не содержащие пробелов внутри...

6
71 / 71 / 55
Регистрация: 04.06.2016
Сообщений: 237
16.07.2017, 13:36
http://cppstudio.com/post/747/
1
 Аватар для Геомеханик
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
16.07.2017, 14:19
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
#include <iostream>
#include <string>
#include <cctype>
#define is_delim(c) (isspace((c)) || ispunct((c)))
 
int main(void){
    std::string s = "This is a test String. This is a test String";
 
    size_t p = 0;
    std::string::size_type i = 0, n = s.length();
    do {
        if((i < n) && !is_delim(s[i]))
            ++p;
        else if(p > 0){
            if(isupper(s[i - p])){
                std::cout.write(&s[i - p], p);
                std::cout << std::endl;
            }
            p = 0;
        }
    } while(i++ < n);
    std::cin.get();
    return 0;
}
1
Эксперт С++
1624 / 954 / 782
Регистрация: 06.02.2016
Сообщений: 2,452
Записей в блоге: 31
16.07.2017, 18:45
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <string>
#include <algorithm>
#include <sstream>
#include <iterator>
using namespace std;
int main(){
    const string s{"This is a test String. This is a test String"};
    istringstream ss(s);
    copy_if(istream_iterator<string>(ss),istream_iterator<string>(),ostream_iterator<string>(cout,"\n"),[](const string &s){
        return isupper(s.front());
    });
    return 0;
}
1
0 / 0 / 1
Регистрация: 12.07.2017
Сообщений: 55
16.07.2017, 21:08  [ТС]
Encephalopathy, Геомеханик, Peoples, спасибо!
0
0 / 0 / 0
Регистрация: 19.02.2016
Сообщений: 1
17.07.2017, 16:29
Решение с использование регулярных выражений.
Познакомился с ними буквально на днях, так что на оптимальность не претендую.

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
#include <iostream>
#include <regex>
#include <string>
#include <sstream>
 
using namespace std;
int main()
{
    //создаем строковый поток из которого будем читать слова в цикле
    //и сопоставлять их с регулярным выражением
    istringstream is{ "This is a test String. This is a test String" };
    string s;
    //Определение шаблона который задает последовательность 
    //алфавитно-цифровых символов начинающихся
    //с заглавной буквы и возможно кончающегося точкой
    regex pat{ R"([[:upper:]]\w*\.*)" };
 
    //читаем слова из строкового потока
    while (is >> s) {
        smatch match;
        if (regex_match(s, match, pat))//проверка слова на точное соответсвие шаблону
        {
            //так можно удалить точку из слова
            //if (s[s.size() - 1] == '.')   
            //  s.erase(s.end() - 1);
            cout << s << endl;
        }
    }
}
0
0 / 0 / 1
Регистрация: 12.07.2017
Сообщений: 55
17.07.2017, 23:23  [ТС]
vorobe, спасибо.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
17.07.2017, 23:23
Помогаю со студенческими работами здесь

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

Подсчитать количество слов, начинающихся с буквы 'а'
Дано предложение-строка. Подсчитать количество слов, начинающихся с буквы 'а'.

Найти количество слов, начинающихся с буквы b
#include &lt;iostream&gt; #include &lt;string&gt; using namespace std; int main() { string s,st; cout &lt;&lt; &quot;Vvedite stroku: &quot;; ...

Найти количество слов, начинающихся с заданной буквы
Помогите решить задачу пожалуйста: Дана строка.Найти количество слов, начинающихся с буквы &quot;а&quot;.

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru