Форум программистов, компьютерный форум, киберфорум
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 5.00
masfisha
1 / 1 / 0
Регистрация: 13.01.2010
Сообщений: 11
#1

Найти все и вывести все слова в которых есть буква "к" - C++

18.01.2010, 04:30. Просмотров 1458. Ответов 8
Метки нет (Все метки)

дана строка (ввод с клавы) найти все и вывести все слова в которых есть буква "к"!!!!!!!!!!!!!!!!!!!!!!(разделители между словами точка или запятая или пробел))))))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2010, 04:30
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Найти все и вывести все слова в которых есть буква "к" (C++):

Вывести все слова, в которых есть буква "a" - C++
не могу найти ошибку int i=0,j=0,a=0,schet=0; char s,s1; cin.getline(s,50); while(i<50) { ...

Найти все слова, в которых есть двойные согласные, и заменить их символом "*" - C++
дан текст(на англ. яз). найти все слова, в которых есть двойные согласные и заменить их *.

Удалить из текста все слова в которых буква "а" встречается более двух раз - C++
Все слова, в которых буква "а" встречается более 2-х раз, удалить из текста. Вывести полученную строку на экран, Если такой буквы нет,...

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

Вывести все значения n, при которых все числа заданной последовательности будут не меньше "a" - C++
Дана последовательность чисел 1+1/2, 1+1/3,…,1+1/n. Вывести все значения n, при которых все числа последовательности будут не меньше a (1 <...

Выяснить, есть ли в заданной строке слова, которые содержат все буквы слова "read" - C++
Помогите, пожалуйста, с кодом на с++. Задание было такое: Дано строку символов. Выяснить, есть ли в ней слова, которые содержат все...

8
newprog12
0 / 0 / 0
Регистрация: 08.01.2010
Сообщений: 5
18.01.2010, 05:49 #2
Пишешь все буквы в один массив.

Далее циклом for i:=0 to n do перебираешь весь массив
Если встречается конец слова if mas[i]=' ' , т.е. пробел то это уже следующеее слово.

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

Тебе алгоритм писать или готовую прогу?
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
18.01.2010, 10:59 #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
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
 
#define CHAR_TO_FIND 'k'
#define STRLEN 128
#define SPCHARS " .,\t\n"
 
int main(void){
    char str[STRLEN], *p;
    
    while ( 1 ){
        printf("\nString: ");
        if ( !fgets(str, sizeof(str), stdin) )
            exit(1);
        if ( *str == '\n' )
            break;
        for ( p = strtok(str, SPCHARS); p != NULL; p = strtok(NULL, SPCHARS) )
            if ( strchr(p, CHAR_TO_FIND) || strchr(p, toupper(CHAR_TO_FIND)) )
                printf("%s\n", p);
    }
    exit(0);
}
3
masfisha
1 / 1 / 0
Регистрация: 13.01.2010
Сообщений: 11
18.01.2010, 18:03  [ТС] #4
C++
1
2
3
#define CHAR_TO_FIND 'k'
#define STRLEN 128
#define SPCHARS " .,\t\n"
обьесни если не трудно)))))))
0
easybudda
Модератор
Эксперт CЭксперт С++
9698 / 5648 / 964
Регистрация: 25.07.2009
Сообщений: 10,863
18.01.2010, 20:11 #5
Цитата Сообщение от masfisha Посмотреть сообщение
#define CHAR_TO_FIND 'k'
#define STRLEN 128
#define SPCHARS " .,\t\n"
обьесни если не трудно)))))))
CHAR_TO_FIND - буква, которую искать в слове
STRLEN - максимальная длинна строки включая завершающий 0
SPCHARS - символы, по которым строка делится на слова

Сама конструкция #define где и кем только не описана. Вот к примеру:
Директива #define определяет идентификатор и последовательность символов, которая будет подставляться вместо идентификатора каждый раз, когда он встретится в исходном файле. Идентификатор называется именем макроса, а сам процесс замены — макрозаменой. В общем виде директива выглядит таким образом:

C
1
#define имя_макроса последовательность_символов
1
V50507
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 56
16.06.2014, 22:56 #6
Цитата Сообщение от easybudda Посмотреть сообщение
#include <stdio.h>
#include <string.h>
#include <ctype.h>
#include <stdlib.h>
#define CHAR_TO_FIND 'k'
#define STRLEN 128
#define SPCHARS " .,\t\n"
int main(void){
* * char str[STRLEN], *p;
while ( 1 ){
* * * * printf("\nString: ");
* * * * if ( !fgets(str, sizeof(str), stdin) )
* * * * * * exit(1);
* * * * if ( *str == '\n' )
* * * * * * break;
* * * * for ( p = strtok(str, SPCHARS); p != NULL; p = strtok(NULL, SPCHARS) )
* * * * * * if ( strchr(p, CHAR_TO_FIND) || strchr(p, toupper(CHAR_TO_FIND)) )
* * * * * * * * printf("%s\n", p);
* * }
* * exit(0);
}
а можете прокомментировать?
хочу понять механизм программы)
пожалуйста
0
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
16.06.2014, 23:26 #7
V50507, Получаем строку, разбиваем её по ключу - SPCHARS, проверяем символ на соответствие CHAR_TO_FIND и если совпал, то выводим
0
V50507
0 / 0 / 0
Регистрация: 25.11.2013
Сообщений: 56
17.06.2014, 12:41 #8
а как мы получаем строку?
и прокомментируйте пожалуйста эти строки, хочу понять детально
C++
1
2
3
4
if ( !fgets(str, sizeof(str), stdin) )
 
for ( p = strtok(str, SPCHARS); p != NULL; p = strtok(NULL, SPCHARS) )
            if ( strchr(p, CHAR_TO_FIND) || strchr(p, toupper(CHAR_TO_FIND)) )
Добавлено через 1 минуту
Цитата Сообщение от recoder Посмотреть сообщение
V50507, Получаем строку, разбиваем её по ключу - SPCHARS, проверяем символ на соответствие CHAR_TO_FIND и если совпал, то выводим
0
recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
17.06.2014, 22:24 #9
V50507, мне кажется, что проще всего, почитать описание функций: fgets, strtok, strchr. И попытаться понять самому, что и как здесь происходит. Т.к код очень маленький, труда не должно составить.
0
17.06.2014, 22:24
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2014, 22:24
Привет! Вот еще темы с ответами:

Есть ли в строке слова, которые содержат все буквы слова "read" - C++
Помогите пожалуйста с заданием на си. Дано строку символов. Выяснить, есть ли в ней слова, которые содержат все буквы слова &quot;read&quot;. Если...

Ввести с клавиатуры строку, заменить в ней все буква "а" на букву "b" - C++
Здравствуйте) Вот возникла такая проблема.... не умею работать с указателями еще(( Помогите написать задачку: &quot;используя указатели,...

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

Строковые переменные: Найти все слова, в которых буква ''а'' входит не менее двух раз - C++
Дан текст. Найти все слова, в которых буква ''а'' входит не менее двух раз.


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

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

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