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

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

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

Напечатать в столбик первые слова всех предложений текста - C++

24.09.2013, 10:05. Просмотров 1707. Ответов 21
Метки нет (Все метки)

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

Напечатать в столбик последние слова всех предложений текста - C++
Текст из файла считывается и записывается во второй файл Напечатать в столбик последние слова всех предложений текста.

Считать текст и напечатать первые слова всех предложений - C++
Помогите пожалуйстааа!!! не знаю как написать.... Из одного файла нужно считать текст и уже в другой напечатать в столбик первые слова всех...

Напечатать последовательно первые буквы всех слов текста (из одного текстового файла в другой) - C++
Йоу,ребят. Программа должна считывать текст из файла и выводить в другой текстовой файл. А задание,собственно,вот. "Напечатать...

Вывод в столбик первых слов всех предложений - C++
Помогите написать программу для вывода в столбик первых слов всех предложений. Текст должен считывается из текстового документа.

Напечатать слова, которые состоят из первых и последних букв (но не цифр) всех слов текста - C++
вот мои попытки, Напечатать слова, которые состоят из первых и последних букв (но не цифр) всех слов текста #include <iostream> ...

Напечатать в столбик все аббревиатуры из текста - C++
Помогите пожалуйста сделать курсовую. :cry:Нужно Напечатать в столбик все аббревиатуры из текста и сохранить это в текстовый файл.

21
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
24.09.2013, 12:45 #16

Не по теме:

alsav22, почему?



Добавлено через 9 минут
Удалось свести вот к такому минимуму. Единственная проблема в строке 22 - если ставить только
C++
1
while(str[t]!='.')
то все ок. Но если добавить так как в коде ниже цикл не завершается...

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
#include<iostream>
#include<cstdio>
using namespace std;
const int ArrSize=256;
 
int main()
{
    char str[ArrSize];
    int t=0;
    cout << "Enter string: ";
    gets(str);
    cout << endl << "The first words:" << endl << endl;
 
    while(str[t]!='\0')
    {
        do{
           cout<<str[t];
           t++;
        }while(str[t]!=' ');
        cout<<'\n'; //что бы в столбик было (=
 
        while(str[t]!='.' || str[t]!='!') //проблема тут. Если убрать || то все работает...
            t++;
 
        t++;
    }
 
    return 0;
0
alsav22
5425 / 4820 / 442
Регистрация: 04.06.2011
Сообщений: 13,587
24.09.2013, 13:00 #17

Не по теме:

Цитата Сообщение от h_wolf Посмотреть сообщение
alsav22, почему?
Недостатки нашёл. Например, предложение заканчивается несколькими знаками (!? или ...), или первое слово одно и после него несколько знаков.



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
#include <iostream>
#include <string>
#include <sstream>
#include <cctype>
 
using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::stringstream;
 
int main()
{
    setlocale(0, "");
    
    string text = "Дело в том, что первый цикл выводит только самое первое слово в тексте и все,"
                  " а в условии написано: всех предложений текста. "
                  " Поэтому второй цикл выводит остальные первые слова в предложениях."
                  "\nЕдинственное в коде можно было обойтись одной переменно t, можно i заменить на t,"
                  "и начать второй цикл с индекса, который остался после выполнения первого цикла.";
 
    stringstream s(text);
    cout << text << endl << endl;
 
    string word;
    while (s >> word)
    {
        while (ispunct((unsigned char)word[word.size() - 1]))
            word.erase(word.size() - 1);
            
        cout << word << endl;
        
        char ch;
        while (s.get(ch))
        {
            if (ch == '.' || ch == '!' || ch == '?' )
            {
                while (s.get(ch))
                {
                    if (isspace((unsigned char)ch)) break;
                }
                break;
            }
        }
    } 
 
    cin.get();
    return 0;
}
0
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
24.09.2013, 13:13 #18
Что-то я сегодня туплю. Естественно в моейм варианте надо не || (ИЛИ) а && (И) использовать.

Вот рабочий код:

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<iostream>
#include<cstdio>
using namespace std;
const int ArrSize=256;
int main()
{
    char str[ArrSize];
    int i,t=0;
    cout << "Enter string: ";
    gets(str);
    cout << endl << "The first words:" << endl << endl;
    while(str[t]!='\0')
    {
        do{
           cout<<str[t];
           t++;
        }while(str[t]!=' ');
        cout<<'\n'; //что бы в столбик было (=
        while(str[t]!='!' && str[t]!='.') //дописать интеречсующие Вас разделители предложений
            t++;
        t++;
    }
    return 0;
}
0
Drusha
6 / 6 / 0
Регистрация: 16.07.2013
Сообщений: 74
24.09.2013, 13:13 #19
alsav22, глядя на Ваш код, я вспомнил как мне в детстве отец говорил "Смотрю в книгу, вижу фигу" Видимо не дорос я еще до такого, буду учить дальше
0
h_wolf
9 / 9 / 1
Регистрация: 24.01.2013
Сообщений: 212
24.09.2013, 13:20 #20
Drusha, ошибочка, думал Вы мне.

Добавлено через 1 минуту
Drusha, просто не все функции нам известны )
0
Drusha
6 / 6 / 0
Регистрация: 16.07.2013
Сообщений: 74
24.09.2013, 13:31 #21
Цитата Сообщение от h_wolf Посмотреть сообщение
Drusha, просто не все функции нам известны )
Москва не сразу строилась
0
h_wolf
24.09.2013, 13:33     Напечатать в столбик первые слова всех предложений текста
  #22

Не по теме:

Drusha, yep!

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
24.09.2013, 13:33
Привет! Вот еще темы с ответами:

Напечатать те слова, которые встречаются в каждом из двух заданных предложений - C++
#include &lt;iostream&gt; #include &lt;conio.h&gt; #include &lt;locale&gt; using namespace std; int main() { char *tempSlova1 = new...

Напечатать те слова, которые встречаются в каждом из двух заданных предложений - C++
Напечатать те слова, которые встречаются в каждом из двух заданных предложений. Помогите. Зарание спасибо! Погуглил, много тем,но...

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

Напечатать слова, которые отличны от последнего слова текста, предварительно удалив из слова последнюю букву - C++
Дана последовательность содержащая от 1 до 30 слов, в каждом из которых от 1 до 5 строчных латинских букв; между соседними словами не менее...


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

Или воспользуйтесь поиском по форуму:
22
24.09.2013, 13:33
Ответ Создать тему
Опции темы

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