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

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

28.05.2021, 11:25. Показов 637. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Написать программу, которая выделяет из строки только слова, которые начинаются с определенной буквы,
с использованием указателей.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
28.05.2021, 11:25
Ответы с готовыми решениями:

Выделить все слова, которые начинаются с заданной буквы
Есть текст, нужно выделить все слова, которые начинаются с буквы "к" (например), как это можно...

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

Вывести только те слова сообщения, которые начинаются с прописной буквы
Вывести только те слова сообщения, которые начинаются с прописной буквы string str ; ...

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

3
147 / 135 / 50
Регистрация: 14.05.2021
Сообщений: 642
28.05.2021, 12:16 2
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
#include <iostream>
#include <regex>
#include <string_view>
#include <sstream>
 
int main()
{
    const char* s = R"(Lorem ipsum dolor sit amet, consectetur adipiscing elit.
Nulla in convallis orci. Praesent consectetur nulla et leo viverra, vehicula 
commodo elit varius. Aenean eu pulvinar massa. Nunc ornare ligula sed elit
gravida bibendum vel elementum velit. Quisque dignissim a purus nec semper.
Praesent sed tempus mi. Maecenas commodo risus nibh, et interdum turpis
ornare sit amet. Aliquam urna orci, pretium vel elit vitae, consequat.)";
    const std::string_view sv{ s };
 
    char c;
    std::cin >> c;
    std::ostringstream reg_string;
    reg_string << "\\b(" << c << "\\w+)";
    std::regex r{ reg_string.str(), std::regex_constants::icase };
    auto words_begin = std::regex_iterator(sv.begin(), sv.end(), r);
    auto words_end = std::regex_iterator<std::string_view::const_iterator>{};
 
    for (auto w = words_begin; w != words_end; ++w)
        std::cout << (*w)[1].str() << std::endl;
 
    return 0;
}
Пример работы:
Код
L
Lorem
leo
ligula

c
consectetur
convallis
consectetur
commodo
commodo
consequat

P
Praesent
pulvinar
purus
Praesent
pretium
Цитата Сообщение от nerduz Посмотреть сообщение
с использованием указателей
указатель вот:
const char*
1
Заблокирован
28.05.2021, 12:21 3
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 <cstdio>
#include <cstdlib>
#include <cstring>
 
unsigned extract(const char* s, const char symbol)
{
  static const char DELIMS[] = " .,:;!@#%^&*()-=+/*\x22'?{}[]<>|\\~`";
  unsigned total = 0;
  char* src = strdup(s);
  char* word = strtok(src, DELIMS);
  
  while (word)
  {
    if (*word == symbol) printf("#%u: '%s'\n", ++total, word);
    word = strtok(NULL, DELIMS);
  } 
  
  free(src);
  return total;
}
   
int main(void)
{
  const char* s1 = "the quick brown fox jumps over the lazy dog";
  printf(">> total words found: %u\n", extract(s1, 't'));
  return 0;
}
0
823 / 626 / 321
Регистрация: 24.02.2017
Сообщений: 2,209
28.05.2021, 13:06 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
#include <iostream>
using namespace std;
 
int main(){
     char s[] = "the quick brown fox jumps over the lazy dog";
     char ch;
     char *p;
 
     cin>>ch;
     p=s;
     if(p[0]==ch){
           while(isalpha(*p)){
                cout<<*p;*p++;
           }
           cout<<" ";
     }
     while(*p){
       if(*p==ch && *(p-1)==' ') {
           while(isalpha(*p)){
                 cout<<*p;*p++;
           }
           cout<<" ";
       }
       *p++;
     }
     return 0;
}
0
28.05.2021, 13:06
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.05.2021, 13:06
Помогаю со студенческими работами здесь

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

Строки. Подсчитать слова, которые начинаются с буквы B
Читайте строки. Напишите программу, которая подсчитывает слова, которые начинаются с буквы B

Скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А».
Постановка задачи Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию...

Скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А»
Здравствуйте дорогие друзья , когда я был маленький , я любил (да и люблю) играть в игры , поэтому...

Скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А»
1) Скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А». 2) Подсчитать...

Скопировать в файл F2 только те строки из F1, которые начинаются с буквы «А»
не могу решить задачу, не откажусь от помощи, добрые люди))) Создать текстовый файл F1 не менее,...


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru