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

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

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

C++ Написать программу,которая находит все слова,в которых буква "а" встречается больше чем один раз.
C++ Вывести все слова, в которых есть буква "a"
C++ Вывести все слова заканчивающиеся на букву "а" (переделать на dev c++)
Что здесь неправильно? (Вывести все слова строки в которых первая буква входит в него ещё раз) 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
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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
9371 / 5421 / 914
Регистрация: 25.07.2009
Сообщений: 10,423
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
129 / 129 / 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++ Вывести все значения n, при которых все числа заданной последовательности будут не меньше "a"
Есть ли в строке слова, которые содержат все буквы слова "read" C++
C++ Выяснить, есть ли в заданной строке слова, которые содержат все буквы слова "read"

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

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

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