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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 10, средняя оценка - 4.70
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 149
14.10.2012, 15:37     Вывести только предложения, содержащие введенное слово #1
Написать программу, которая считывает текст из текстового файла и выводит на экран только предложения, содержащие введенное с клавиатуры слово.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.10.2012, 15:37     Вывести только предложения, содержащие введенное слово
Посмотрите здесь:

Считать текст из файла и вывести на экран только предложения, содержащие введенное с клавиатуры слово C++
C++ Cчитать текст и вывести на экран только предложения, содержащие введенное с клавиатуры слово.
C++ Написать программу,которая считывает текст из файла и выводит на экран только предложения,содержащие введенное с клавиатуры слово.
C++ Считывание текста из файла и вывод на экран только предложения содержащие введенное с клавиатуры слово
C++ Списки и файлы. Вывести на экран только предложения, содержащие слово которое ввели с клавиатуры (найти ошибку в коде)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
14.10.2012, 16:12     Вывести только предложения, содержащие введенное слово #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
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <sstream>
#include <fstream>
 
using namespace std;
 
int main(){
    setlocale(LC_ALL, "");
    string findword;
    cout << "Введите слово для поиска: ";
    cin >> findword;
    fstream filein("text.txt", ios::in);
    if(!filein.is_open()){
        cerr << "Ошибка открытия файла, работа программы завершена!\n";
        return 1;
    }
 
    string clause;
    while (getline(filein, clause, '.')){
        vector<string> words;
        string word;
        istringstream is(clause);
        while(is >> word) words.push_back(word);
        vector<string>::iterator it = find(words.begin(), words.end(), findword);
        if(it != words.end())
            cout << clause << "\n\n";
    };
    return 0;
}
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 149
14.10.2012, 16:18  [ТС]     Вывести только предложения, содержащие введенное слово #3
Можно небольшие комментарии о том, что происходит и что оператор выполняет? Буду очень признателен.
panicwassano
590 / 558 / 20
Регистрация: 07.11.2010
Сообщений: 2,004
14.10.2012, 16:30     Вывести только предложения, содержащие введенное слово #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
#include <iostream>
#include <vector>
#include <string>
#include <algorithm>
#include <sstream>
#include <fstream>
 
using namespace std;
 
int main(){
    setlocale(LC_ALL, "");
    string findword; //слово для поиска
    cout << "Введите слово для поиска: ";
    cin >> findword; //считываем слово для поиска
    fstream filein("text.txt", ios::in); //открываем файл на чтение
    if(!filein.is_open()){ 
        cerr << "Ошибка открытия файла, работа программы завершена!\n";//если файл не удается открыть завершаем программу
        return 1;
    }
 
    string clause; //здесь будем хранить предложение
    while (getline(filein, clause, '.')){ //считываем предложение, признак конца является точка
        vector<string> words; //тут будем хранить слова из нашего предложения
        string word;//отдельное слово
        istringstream is(clause);//открываем поток и записываем туда наше предложение
        while(is >> word) words.push_back(word); //читаем по слову из потока и кладем в наш массив
        vector<string>::iterator it = find(words.begin(), words.end(), findword); // ищем наше слово в массиве
        if(it != words.end()) //если слово найдено, то итератор не будет указывать на конец массива
            cout << clause << "\n\n";//вывод предложения в котором нашли наше слово
    };
    return 0;
}
Evgeniy_Fox
5 / 5 / 0
Регистрация: 22.09.2012
Сообщений: 149
14.10.2012, 16:32  [ТС]     Вывести только предложения, содержащие введенное слово #5
Спасибо большое!
Yandex
Объявления
14.10.2012, 16:32     Вывести только предложения, содержащие введенное слово
Ответ Создать тему
Опции темы

Текущее время: 12:57. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru