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

Вывести на экран из текста только предложения, состоящие из заданного количества слов

08.08.2012, 12:42. Показов 4411. Ответов 8
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Помогите решить задачку:
Вывести на экран из текста только предложения, состоящие из заданного количества слов.

Знаю, решение этой задачи есть в интернете, но там сложновато для моего понимания, хотелось бы как можно проще. Выручайте,господа, молю смиренно!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.08.2012, 12:42
Ответы с готовыми решениями:

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

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

Считать текст из файла и вывести на экран только предложения, состоящие из заданного количества слов (в виде функции)
Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов. Только...

8
 Аватар для Пaтрик
442 / 410 / 132
Регистрация: 21.01.2012
Сообщений: 976
08.08.2012, 12:50
Развибаете текст на предложения, загоняете в массив.
Разбиваете каждое предложение на слова, считаете сколько их, запоминаете, где больше всего.
0
0 / 0 / 0
Регистрация: 07.08.2012
Сообщений: 22
08.08.2012, 13:42  [ТС]
Я только начал изучать программирование в универе, так ещё дуб в этом. Задали на практику много, не успеваю. Если есть возможность, то мне нужен листинг.

Добавлено через 48 минут
Цитата Сообщение от bullin2d Посмотреть сообщение
Помогите решить задачку:
Вывести на экран из текста только предложения, состоящие из заданного количества слов.

Знаю, решение этой задачи есть в интернете, но там сложновато для моего понимания, хотелось бы как можно проще. Выручайте,господа, молю смиренно!
Кроме обычного решения, потребовали оформить также отдельно её с помощью функции( Ребят, надежда только на вашу помощь.
0
 Аватар для zitxbit
96 / 748 / 279
Регистрация: 11.04.2012
Сообщений: 971
08.08.2012, 16:01
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
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <ctype.h>
 
int main()
{
    static char psz[256] = "hello. world is nice. cool day! to be or not to be? very nice day!";
    int nwords = 3;
 
    printf("string = %s\n\n",psz);
 
    for (int i = 0; psz[i] != '\0'; i++)
    {
        char pchars[] = "!?."; int k = i, cnt = 0;
        while (!strchr(pchars,psz[i]) && psz[i] != '\0')
            if (isspace(psz[i++])) cnt++; 
 
        int n = k; if (k == 0) cnt++;
        char temp[256] = "\0"; int s = 0;
        while (n <= i && cnt == nwords) 
            temp[s++] = psz[n++];
 
        if (cnt == nwords) 
            printf("%s\n",temp);
    }
 
    _getch();
 
    return 0;
}
http://liveworkspace.org/code/... 04891ed74c
2
0 / 0 / 0
Регистрация: 07.08.2012
Сообщений: 22
08.08.2012, 16:06  [ТС]
Спасибо громадное за помощь! Вот бы ещё с функцией это же кто-нить помог сделать...
0
 Аватар для zitxbit
96 / 748 / 279
Регистрация: 11.04.2012
Сообщений: 971
08.08.2012, 16:08
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
void print_s(char* psz, int nwords)
{
    for (int i = 0; psz[i] != '\0'; i++)
    {
        char pchars[] = "!?."; int k = i, cnt = 0;
        while (!strchr(pchars,psz[i]) && psz[i] != '\0')
            if (isspace(psz[i++])) cnt++; 
 
        int n = k; if (k == 0) cnt++;
        char temp[256] = "\0"; int s = 0;
        while (n <= i && cnt == nwords) 
            temp[s++] = psz[n++];
 
        if (cnt == nwords) 
            printf("%s\n",temp);
    }
}
3
0 / 0 / 0
Регистрация: 07.08.2012
Сообщений: 22
08.08.2012, 16:10  [ТС]
Ого как быстро! Вы профи! Благодарю!
0
Автор FAQ
 Аватар для -=ЮрА=-
6614 / 4256 / 401
Регистрация: 08.08.2009
Сообщений: 10,325
Записей в блоге: 24
08.08.2012, 17:52
Цитата Сообщение от bullin2d Посмотреть сообщение
Вывести на экран из текста только предложения, состоящие из заданного количества слов.
bullin2d, тоже как вариант
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
 
int getNumWordsInSentence(char * sentence);
 
int main()
{
    int nWords        = 0;//áóäåò õðàíèòü ÷èñëî ñëîâ
    int nSentence     = 0;//áóäåò õðàíèòü ÷èñëî ïðåäëîæåíèé
 
    char inp[1024]    = {0};//Áóôôåð äëÿ ââîäèìîãî òåêñòà
    char out[1024]    = {0};//Áóôôåð äëÿ âûâîäèìîãî òåêñòà
    char sentence[128]= {0};//Áóôôåð äëÿ ïåðäëîæåíèÿ
    char * sub        = NULL;//Óêàçàòåëü íà ïîäñòðîêó ñ ïðåäëîæåíèåì
    //Âîçìîæíûå ðàçäåëèòåëè ìåæäó ïðåäëîæåíèÿìè
    char **sWords     = NULL;//Óêàçåòåëü íà ìàññèâ ñ ïðåäëîæåíèÿìè èç òåêñòà
    char delim[] = ".!?";
    //Ââîäèì òåêñò
    printf("Enter text   : ");scanf("%[^\n]",inp);
    printf("Enter nWords : ");scanf("%d",&nWords);
/*  strcpy
    (
        inp,
        "hello. world is nice. cool day! to be or not to be? very nice day!"
    );
    nWords = 3;*/
    strcpy(out,inp);
    //Ïîäñ÷¸ò ÷èñëà ïðåäëîæåíèé â òåêñòå
    for
    (
        sub = strtok( out,delim);
        sub != NULL;
        sub = strtok(NULL,delim)
    )
        nSentence = nSentence + 1;
    //Âûäåëÿåì ïàìÿòü ïîä ñòðîêè ìàññèâà ïðåäëîæåíèé
    sWords = (char **)malloc(nSentence*sizeof(char *));
    //Êîïèðóåì ïðåäëîæåíèÿ â ìàññèâ
    nSentence = 0;
    out[0]    = 0;
    for
    (
        sub = strtok( inp,delim);
        sub != NULL;
        sub = strtok(NULL,delim)
    )
    {
        sWords[nSentence] = (char *)malloc(128*sizeof(char *));
        strcpy(sWords[nSentence],sub);
        nSentence = nSentence + 1;
    }
    //Îñòàâëåÿì â âûõîäíîì òåêñòå íóæíûå ïðåäëîæåíèÿ
    while(nSentence)
    {
        strcpy(sentence,sWords[nSentence - 1]);
        if(nWords == getNumWordsInSentence(sentence))
        {
            if(!out[0])
                strcpy(out,sWords[nSentence - 1]);
            else
                strcat(out,sWords[nSentence - 1]);
        }
        nSentence = nSentence - 1;
    }
    printf("Output text : %s\n",out);
    return 0;
}
 
int getNumWordsInSentence(char * sentence)
{
    int nCount  = 0;  //×èñëî ñëîâ â ïðåäëîæåíèè
    char *word  = {0};//Óêàçàåòëü íà ñëîâî èç òåêñòà
    //Âîçìîæíûå ðàçäåëèòåëè ìåæäó ñëîâàìè
    char delim[] = ",;:- ";
    for
    (
        word = strtok(sentence,delim);
        word != NULL;
        word = strtok(NULL,delim)
    )
        nCount = nCount + 1;
    return nCount;
}
http://liveworkspace.org/code/... 38c3e22715
Миниатюры
Вывести на экран из текста только предложения, состоящие из заданного количества слов  
1
0 / 0 / 0
Регистрация: 07.08.2012
Сообщений: 22
08.08.2012, 18:19  [ТС]
Цитата Сообщение от zitxbit Посмотреть сообщение
void print_s(char* psz, int nwords)
...

zitxbit, я совсем ламер. куда это вставить в начальном варианте?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.08.2012, 18:19
Помогаю со студенческими работами здесь

Задача на тему "Строки" (вывести на экран только предложения, состоящие из заданного количества слов)
написать программу, которая считывает текст из файла и вывыдит на экран только предложения состоящие из задоного количества слов int...

Вывести на экран предложения, состоящие из заданного количества слов
написать программу, которая считывает текст из файла и выводит на экран только те предложения, состоящие из заданного количества слов

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

Потоки.Программа выводит на экран только предложения, состоящие из заданного количества слов. Нужно дополнить прогу
вот что нужно написать, чтобы выводило правильно. везде (в интернете) очень замудрёно написано( #include&lt;iostream&gt; ...

Вывести на экран только предложения, состоящие из заданного количества слов
Помогите пж, не получается написать программу, которая вводит текст, состоящий из нескольких предложений, и выводит на экран только...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Реализация движения на Box2D v3 - трение и коллизии с повёрнутыми стенами
8Observer8 20.02.2026
Содержание блога Box2D позволяет легко создать главного героя, который не проходит сквозь стены и перемещается с заданным трением о препятствия, которые можно располагать под углом, как верхнее. . .
Конвертировать закладки radiotray-ng в m3u-плейлист
damix 19.02.2026
Это можно сделать скриптом для PowerShell. Использование . \СonvertRadiotrayToM3U. ps1 <path_to_bookmarks. json> Рядом с файлом bookmarks. json появится файл bookmarks. m3u с результатом. # Check if. . .
Семь CDC на одном интерфейсе: 5 U[S]ARTов, 1 CAN и 1 SSI
Eddy_Em 18.02.2026
Постепенно допиливаю свою "многоинтерфейсную плату". Выглядит вот так: https:/ / www. cyberforum. ru/ blog_attachment. php?attachmentid=11617&stc=1&d=1771445347 Основана на STM32F303RBT6. На борту пять. . .
Камера Toupcam IUA500KMA
Eddy_Em 12.02.2026
Т. к. у всяких "хикроботов" слишком уж мелкий пиксель, для подсмотра в ESPriF они вообще плохо годятся: уже 14 величину можно рассмотреть еле-еле лишь на экспозициях под 3 секунды (а то и больше),. . .
И ясному Солнцу
zbw 12.02.2026
И ясному Солнцу, и светлой Луне. В мире покоя нет и люди не могут жить в тишине. А жить им немного лет.
«Знание-Сила»
zbw 12.02.2026
«Знание-Сила» «Время-Деньги» «Деньги -Пуля»
SDL3 для Web (WebAssembly): Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 12.02.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами и вызывать обработчики событий столкновения. . . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru