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

Программа,которая считывает с клавиатуры текст

12.03.2012, 13:25. Показов 3723. Ответов 6
Метки нет (Все метки)

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

Среда DEV-C++
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
12.03.2012, 13:25
Ответы с готовыми решениями:

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

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

Программа считывает текст с клавиатуры и выводит на экран...
написать программу которая считывает текст с клавиатуры и выводит на экран слова текста начинающиеся и оканчивающиеся на гласные...

6
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.03.2012, 13:37
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <string>
#include <iostream>
#include <vector>
#include <algorithm>
#include <iterator>
#include <boost/algorithm/string.hpp>
 
int main()
{
   std::string text = "Не так давно мне пришлось делать приложение для Windows Phone работающее с xml-файлами."
   "Всё было неплохо, но когда в файле стало ~100.000 записей, чтение их занимало ну уж очень много времени."
   "И я решил сравненить производительность различных способов чтения данных из xml возможных на платформе .Net.";
   const size_t words_cnt = 13;
   std::vector<std::string> sentences;
   boost::split(sentences, text, boost::is_any_of(".!?"), boost::token_compress_on);
   std::copy_if(sentences.begin(), sentences.end(), std::ostream_iterator<std::string>(std::cout, "\n"),
   [words_cnt](const std::string& value) -> bool
   {
      std::vector<std::string> words;
      boost::split(words, value, boost::is_any_of(" ,"), boost::token_compress_on);
      return words.size() == words_cnt;
   });
}
http://liveworkspace.org/code/... d3eed65c32
0
24 / 24 / 18
Регистрация: 11.03.2012
Сообщений: 175
12.03.2012, 13:39  [ТС]
Ех как..) А попроще никак это не сделать ?))
0
В астрале
Эксперт С++
 Аватар для ForEveR
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
12.03.2012, 13:41
FallenAngel76ru, Сделать конечно. Получится больше кода. Делать будет напряжнее, ибо придется использовать больше инструментов.
0
24 / 24 / 18
Регистрация: 11.03.2012
Сообщений: 175
12.03.2012, 13:42  [ТС]
С этим согласен ) Буду делать исходя из вышенаписанного..) Спасибо
0
53 / 53 / 19
Регистрация: 10.03.2012
Сообщений: 138
12.03.2012, 14:10
Не гарантирую корректность кода, но:
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
#include <stdio.h>
 
using namespace std;
 
const int phrase_separators_size = 3;                         // Размер массива разделителей предложений
const char phrase_separators[phrase_separators_size] = {'.', '!', '?'}; // Массив разделителей предложений
 
const int word_separators_size = 6;                          // Размер массива разделителей слов
const char word_separators[word_separators_size] = {' ', ',', '/', '.', '!', '?'}; // Массив разделителей слов
 
char tmp[50000], str[50000];
bool first = true;
int sz, words_count, phrase_start, n;
 
bool is_word_separator(char s) // является ли символ разделителем слов
{
    for (int i = 0; i < word_separators_size; i++)
        if (word_separators[i] == s)
            return true;
    return false;
}
 
bool is_phrase_separator(char s) // является ли символ разделителем предложений
{
    for (int i = 0; i < phrase_separators_size; i++)
        if (phrase_separators[i] == s)
            return true;
    return false;
}
 
int main()
{
    scanf("%d\n", &n);
    while(gets(tmp))
    {
        if (first)           // добавляем пробел между всеми предложениями при склеивании
            first = false;
        else
            str[sz++] = ' '; 
        for (int i = 0;  tmp[i] != 0; i++)
            str[sz++] = tmp[i];
    }
    for (int i = 0; str[i] != 0; i++)
    {
        if (is_word_separator(str[i]) && i > 0 && ((str[i - 1] >= 'a' && str[i - 1] <= 'z') || (str[i - 1] >= 'A' && str[i - 1] <= 'Z')))
            words_count++;
        if (is_word_separator(str[i]) && words_count == 0)
            phrase_start++;
        if (is_phrase_separator(str[i])) // если предложение закончилось
        {
            if (words_count == n) // и число слов равно n
            {
                for (int j = phrase_start; j <= i; j++)
                    printf("%c", str[j]); // выводим строку
                printf("\n");
            }
            words_count = 0; // обнуляем счетчик слов
            phrase_start = i + 1; // ставим указатель на позицию начала нового предложения
        }
    }
 
}
Сначала идет число - ограничение на число слов. Далее произвольное число строк - текст.
В константных массивах содержатся разделители слов и предложений(не забудьте увеличить и переменную, храняющую размер массива).
0
24 / 24 / 18
Регистрация: 11.03.2012
Сообщений: 175
12.03.2012, 14:14  [ТС]
Окей, спасибо..)) Всё, полетел разбираться..) Спасибо огромное )))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
12.03.2012, 14:14
Помогаю со студенческими работами здесь

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

Написать программу,которая считывает текст с клавиатуры и выводит на экран слова начинающиеся с гласных букв
надо один цикл вроде вставить но не знаю какой Написать программу,которая считывает текст с клавиатуры и выводит на экран слова...

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

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

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


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Новые блоги и статьи
Символьное дифференцирование
igorrr37 13.02.2026
/ * Программа принимает математическое выражение в виде строки и выдаёт его производную в виде строки и вычисляет значение производной при заданном х Логарифм записывается как: (x-2)log(x^2+2) -. . .
Камера 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. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru