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

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

Войти
Регистрация
Восстановить пароль
 
pusser
2 / 2 / 0
Регистрация: 17.10.2010
Сообщений: 77
#1

Вывести на экран все слова предложения, содержащие в качестве подстроки слово w - C++

20.12.2010, 22:46. Просмотров 1055. Ответов 3
Метки нет (Все метки)

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

Вывести все слова, которые имеют четную длину и содержат в качестве подстроки последнее слово - C++
Вывести все слова (под словом понимается непустая последовательность символов, не содержащих пробелов) во введенном предложении (и их...

:Вывести все слова предложения, содержащие последнюю букву предыдущего слова не менее 2 раз - C++
Делаю задание:Вывести все слова предложения, содержащие последнюю букву предыдущего слова не менее 2 раз. Начал с пере формировки...

Cчитать текст и вывести на экран только предложения, содержащие введенное с клавиатуры слово. - C++
Написать программу, которая считывает текст и выводит на экран только предложения, содержащие введенное с клавиатуры слово. #include...

Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово - C++
У меня тут проблемка возникла! Осталась последняя неделя - ни как не могу написать вот эти проги. Если не трудно помогите плиз ...

Считать текст из файла и вывести на экран только предложения, содержащие введённое с клавиатуры слово - C++
Написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введённое с клавиатуры слово. ...

Списки и файлы. Вывести на экран только предложения, содержащие слово которое ввели с клавиатуры (найти ошибку в коде) - C++
Ребята привет, мне посоветовали этот форум, как помощь для начинающих программистов. Буду очень признательна, если поможете исправить...

3
BrumbleHorse
121 / 121 / 11
Регистрация: 18.09.2010
Сообщений: 212
20.12.2010, 23:31 #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
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define MAX 100
#define W 15
void str_copy(char* target,char* src)
{
  char* _p;
  for ( _p = target; *_p; ++_p );
  while ( *_p++ = *src++ );
}
void str_delete(const char* str,const char* delim,const char* word_w)
{
     char new_line[MAX]={};
     char* buf, * p, *pp;
     const char* word;
     const char* spc=" ";
     buf = strdup(str);
     word=new_line;
     pp=new_line;
     for(p=strtok(buf,delim);p;p=strtok(NULL,delim))
     {
       if(strstr(p,word_w))
       {
           str_copy(pp,p);
           str_copy(pp,spc);
       }
 
     }
    printf("Here is words that contain 'w' word:\n");
    printf("%s", word);
    free(buf);
}
void main()
 {   char line[MAX]={};
     char w[W]={};
     const char* w_border=" !,";
     const char* p_line=line;
     const char* p_w=w;
     printf("Please input your string:\n");
     gets(line);
     printf("Please input your w:\n");
     gets(w);
     str_delete(p_line,w_border,p_w);
     getch();
 }
1
pusser
2 / 2 / 0
Регистрация: 17.10.2010
Сообщений: 77
26.12.2010, 21:14  [ТС] #3
не могли бы пожалуйста прокомментировать код! не особо понимаю как всё работает! но работает правильно!

Добавлено через 1 час 41 минуту
Ну кто нить плиз расскажите как программа работает?
0
BrumbleHorse
121 / 121 / 11
Регистрация: 18.09.2010
Сообщений: 212
26.12.2010, 22:52 #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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
#include <stdio.h>
#include <string.h>
#include <conio.h>
#define MAX 100
#define W 15
void str_copy(char* target,char* src)/*функция копирует строку src в строку target*/
{
  char* _p;
  for ( _p = target; *_p; ++_p );
  while ( *_p++ = *src++ );
}
void str_delete(const char* str,const char* delim,const char* word_w)/*функция,выполняющая задание*/
{/*получает в качестве аргументов строку,введенную пользователем,введенное слово w и delim - набор разделителей слова*/
     char new_line[MAX]={};
     char* buf, * p, *pp;
     const char* word;
     const char* spc=" ";/*создаем пробел, чтобы вставлять его при создании итоговой строки*/
     buf = strdup(str);/*делаем копию введенной пользователем строки,чтобы поработать с ней*/
     word=new_line;
     pp=new_line;
     for(p=strtok(buf,delim);p;p=strtok(NULL,delim))/*strtok делит строку на лексемы(слова)*/
     {/*за один проход цикла работаем с очередным словом*/
       if(strstr(p,word_w))/*если слово содержит в себе слово w,то копируем его в итоговую строку*/
       {
           str_copy(pp,p);
           str_copy(pp,spc);/*после него копируем в итоговую строку пробел*/
       }
 
     }
    printf("Here is words that contain 'w' word:\n");
    printf("%s", word);/*выводим итоговую строку -результат*/
    free(buf);/*освобождаем память*/
}
void main()
 {   char line[MAX]={};
     char w[W]={};
     const char* w_border=" !,";
     const char* p_line=line;
     const char* p_w=w;
     printf("Please input your string:\n");
     gets(line);
     printf("Please input your w:\n");
     gets(w);
     str_delete(p_line,w_border,p_w);
     getch();
 }
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.12.2010, 22:52
Привет! Вот еще темы с ответами:

Из текстового файла неизвестного размера вывести на экран все предложения, не содержащие запятых - C++
Привет, Программисты! :) Нужна ваша помощь... Есть задача по поводу работы со строками: &quot;Из текстового файла неизвестного размера вывести...

Вывести все слова из файла, содержащие в себе слово red - C++
Необходимо вывести все слова из файла, содержащие в себе слово red Вот код: #include &lt;iostream&gt; #include &quot;fstream&quot; #include...

Распечатать все строки данного файла, содержащие заданную строку в качестве подстроки - C++
Распечатать все строки данного файла, содержащие заданную строку в качестве подстроки. Имя файла и строка задаются в командной строке. ...

В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d” - C++
Всем привет! Помогите написать программу! В предложении найти и вывести на экран все слова, содержащие ровно две буквы “d”. Заранее...


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

Или воспользуйтесь поиском по форуму:
4
Yandex
Объявления
26.12.2010, 22:52
Ответ Создать тему
Опции темы

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