Форум программистов, компьютерный форум CyberForum.ru

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

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

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

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

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

C++ Найти все слова, в которых буква ”а” встречается более чем один раз
C++ Ввести с клавиатуры строку, заменить в ней все буква "а" на букву "b"
C++ Написать программу,которая находит все слова,в которых буква "а" встречается больше чем один раз.
C++ Вывести все слова, в которых есть буква "a"
Вывести на экран все слова, содержащие букву "k" C++
C++ Вывести все слова заканчивающиеся на букву "а" (переделать на dev c++)
Что здесь неправильно? (Вывести все слова строки в которых первая буква входит в него ещё раз) C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
newprog12
0 / 0 / 0
Регистрация: 08.01.2010
Сообщений: 5
18.01.2010, 05:49     Найти все и вывести все слова в которых есть буква "к" #2
Пишешь все буквы в один массив.

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

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

Тебе алгоритм писать или готовую прогу?
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
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);
}
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"
обьесни если не трудно)))))))
easybudda
Эксперт С++
 Аватар для easybudda
9412 / 5435 / 917
Регистрация: 25.07.2009
Сообщений: 10,428
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 имя_макроса последовательность_символов
V50507
 Аватар для 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);
}
а можете прокомментировать?
хочу понять механизм программы)
пожалуйста
recoder
 Аватар для recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
16.06.2014, 23:26     Найти все и вывести все слова в которых есть буква "к" #7
V50507, Получаем строку, разбиваем её по ключу - SPCHARS, проверяем символ на соответствие CHAR_TO_FIND и если совпал, то выводим
V50507
 Аватар для 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 и если совпал, то выводим
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.06.2014, 22:24     Найти все и вывести все слова в которых есть буква "к"
Еще ссылки по теме:

C++ Строковые переменные: Найти все слова, в которых буква ''а'' входит не менее двух раз
C++ Вывести все значения n, при которых все числа заданной последовательности будут не меньше "a"
Есть ли в строке слова, которые содержат все буквы слова "read" C++
C++ Выяснить, есть ли в заданной строке слова, которые содержат все буквы слова "read"
Удалить из текста все слова в которых буква "а" встречается более двух раз C++

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

Или воспользуйтесь поиском по форуму:
recoder
 Аватар для recoder
130 / 130 / 28
Регистрация: 13.09.2013
Сообщений: 260
Записей в блоге: 2
17.06.2014, 22:24     Найти все и вывести все слова в которых есть буква "к" #9
V50507, мне кажется, что проще всего, почитать описание функций: fgets, strtok, strchr. И попытаться понять самому, что и как здесь происходит. Т.к код очень маленький, труда не должно составить.
Yandex
Объявления
17.06.2014, 22:24     Найти все и вывести все слова в которых есть буква "к"
Ответ Создать тему
Опции темы

Текущее время: 20:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru