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

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

Войти
Регистрация
Восстановить пароль
 
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
#1

Вывод предложений, начинающихся с тире - C++

02.06.2012, 12:13. Просмотров 947. Ответов 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
25
26
27
28
29
30
31
32
33
// 359.cpp: определяет точку входа для консольного приложения.
//
 
#include "stdafx.h"
#include <fstream>
#include <iostream>
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
 
    const int len=120;
    char word[len], line[len];
    char del[]= ".,!?/<>|)(*::\ ";
    int l_word=0;
    int k=0;    
    int count=0;
    ifstream fin("text.txt", ios :: in );
    if (!fin) {cout <<"Don't worry!!!!"<<endl; }
    while (fin.getline(line,len))
    {
        
        for (int i=0; i<strlen(line); i++)
        {
            if((line[i]=='-' || line[i+1]=='-') && line[i]==' ')
                cout <<line<<endl;
 
        }   
 
    }
    
    return 0;
}
Дело в том, что не выводятся предложения, начинающиеся просто с тире. Как условие правильно составить?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
02.06.2012, 12:13
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Вывод предложений, начинающихся с тире (C++):

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

Определить количество предложений, начинающихся с отступа - C++
{deleted} П.5.9. Правил Экзаменационная задачка, СРОЧНО, помогите пожалуйста написать программу, определяющую количество предложений...

Поиск и вывод слов начинающихся на 'l' - C++
{int i,j; char s,s1; cin.getline(s,255); for(i=0;i&lt;255;i++) { if (s=='l') {j=i; while (s!=' ') {s1=s; i++;

Вывод предложений в обратном порядке - C++
например ввели текст там 3 предложения : Ночь. Улица. Фонарь. вывод должен быть таков: Фонарь. Улица. Ночь. можно в строку...

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

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

3
Awful
12 / 12 / 0
Регистрация: 09.11.2009
Сообщений: 65
02.06.2012, 12:27 #2
C++
1
2
3
4
5
6
7
{
if (line [i]==' ')
    continue;
if (line [i] =='-')
    cout <<line<<endl;
else break;
}
Соответственно по пробелу перейдем на следующий символ, по тире - выведем строку. Если попадется что-то еще - строка не начинается с тире, конец цикла
1
KOPC1886
27 / 6 / 0
Регистрация: 28.10.2010
Сообщений: 352
02.06.2012, 13:09  [ТС] #3
Awful, а можете поподробнее объяснить условие, а то не очень понятно.
0
Awful
12 / 12 / 0
Регистрация: 09.11.2009
Сообщений: 65
02.06.2012, 15:13 #4
Цитата Сообщение от KOPC1886 Посмотреть сообщение
Awful, а можете поподробнее объяснить условие, а то не очень понятно.
ну вот в общем конечный вид внутреннего цикла. У нас есть строка line,начинаем просмотр с 0-го символа:
C++
1
2
3
4
5
6
7
8
9
10
11
12
        for (int i=0; i<strlen(line); i++)
        {
               if (line [i]==' ') // Если символ пробел( пробелы возможны по условию)
                    continue; /*  переходим на следующий шаг цикла - будем проверять 
следующий элемент*/
               if (line [i] =='-') /* на каком-то шаге мы найдем тире (если были пробелы), 
либо сразу( если пробелов не было), либо вообще сюда не дойдем
, если нам когда-то встретится другой символ.*/
                    cout <<line<<endl; // выводим строку , соответствующую условию
               else break; /* если встретился сторонний символ( не пробел и не тире) 
- прерываем цикл, это не искомая строка.*/
        }
0
02.06.2012, 15:13
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
02.06.2012, 15:13
Привет! Вот еще темы с ответами:

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

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

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

Вывод на экран предложений с заданным числом слов - C++
Подскажите, как подсчитать слова в предложениях, которые считываются из файла, а затем вывести на экран только те предложения, которые...


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

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

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