Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Ответ
 
Опции темы
Старый 08.05.2018, 01:14   #1
Волера
Новичок
 
Регистрация: 08.05.2018
Сообщений: 3
Репутация: 10
По умолчанию Поиск в текстовом файле предложений с заданной подстрокой

У меня получилось сделать поиск подстроки в строке, но в предложении не получается. Как сделать поиск в предложении? (Visual Studio 2010)
Код:

#include "stdafx.h"
#include <iostream>
#include <string>
#include <ctime>
#include <stdlib.h>
#include <windows.h>
#include <fstream>
 
using namespace std;
 
int _tmain(int argc, _TCHAR* argv[])
{
    SetConsoleCP (1251);
    SetConsoleOutputCP (1251);
    
    char text[1024];
    char text1[1024];
    ifstream file("text.txt");
    if (file.is_open()) {
        cout<<"Введите текст для поиска: ";
        cin>>text1;
        while (file.getline(text, 1024)) {      
            if (strstr(text, text1))
            cout<<text<<endl;
        }
        file.close();
    } else 
        cout<<"Ошибка! Файла не существует!"<<endl;
 
    system("pause");
    return 0;
}

Волера вне форума   Ответить с цитированием
Старый 08.05.2018, 07:34   #2
p51x
Профессионал
 
Регистрация: 15.02.2010
Сообщений: 11,537
Репутация: 1916

icq: 216409213
По умолчанию

1. Определяете что у вас является предложением.
2. Читаете предложение.
3. Ищите в прочитанном нужное.
__________________
Запомните раз и навсегда: помочь != "решите за меня"!
p51x вне форума   Ответить с цитированием
Старый 08.05.2018, 14:01   #3
Волера
Новичок
 
Регистрация: 08.05.2018
Сообщений: 3
Репутация: 10
По умолчанию

Цитата:
Сообщение от p51x Посмотреть сообщение
1. Определяете что у вас является предложением.
2. Читаете предложение.
3. Ищите в прочитанном нужное.
У меня получилось определить, что является предложением и вывести строку с этим предложением. В текстовом файле в первой строке у меня записано 2 предложения, во 2 и 3 строке по 1 предложению. Если я ввожу какое то слово из предложения 1 строки, то выводится вся строка целиком (т.е. оба предложения). Не могу сделать, чтобы она вывела нужное предложение.
Код:

char text[1024];
char text1[1024];
ifstream file("text.txt");
if (file.is_open()) {
	cout<<"Введите текст для поиска: ";
	cin>>text1;
	while (file.getline(text, 1024)) {
		size_t n=0;
		for (const char *p = text, *first; *p;) {
			while (*p == ' ' || *p == '\t') ++p;
			if ( n==0 ) first = p;
			++n;
			while (*p && !(*p == ' ' || *p == '\t' || *p == '.')) ++p;
			if (*p == '\0' || *p == '.') {
				while (*p == '\t' || *p == '.') ++p;			
				n=0;
				if (strstr(text, text1))
					cout.write(first, p - first)<<"\n";
			}
		}
	}
	file.close();
} else 
	cout<<"Ошибка! Файла не существует!"<<endl;


Последний раз редактировалось Волера; 08.05.2018 в 15:12.
Волера вне форума   Ответить с цитированием
Старый 09.05.2018, 16:39   #4
Волера
Новичок
 
Регистрация: 08.05.2018
Сообщений: 3
Репутация: 10
По умолчанию

*Выводится вся строка по предложениям. Два предложения, но на разных строках.
Волера вне форума   Ответить с цитированием
Старый 14.05.2018, 10:14   #5
ezus
Пользователь
 
Регистрация: 08.05.2009
Сообщений: 39
Репутация: 10
По умолчанию

Твоя ошибка в том, что ты мыслишь категориями строк, а они здесь только мешают.
Рассматривай и анализируй не строки, а весь текст как одна строка, если ты можешь прочитать его весь целиком в память. Или читай посимвольно от точки до точки.
ezus вне форума   Ответить с цитированием
Старый 22.05.2018, 12:12   #6
Imran520
Новичок
 
Регистрация: 22.05.2018
Адрес: Rawalpindi
Сообщений: 1
Репутация: 10
По умолчанию

A also have same problem.
Imran520 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск предложений в текстовом файле (Delphi) axell24 Помощь студентам 5 22.10.2011 16:58
Поиск данных в текстовом файле (в самом файле! а не в Memo и не загружая всю инфу из файла в одну строку glagoff Помощь студентам 1 05.05.2010 13:00
Поиск в текстовом файле! Straiker Паскаль 2 18.01.2009 11:07
Поиск в текстовом файле KaimaS Общие вопросы C/C++ 0 12.11.2008 18:39


04:23.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru