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

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

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
#1

Поиск в файле заданной последовательности символов - C++

16.06.2012, 17:51. Просмотров 2210. Ответов 18
Метки нет (Все метки)

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

Поиск заданной последовательности символов в бинарном файле - C++
Допустим в файле написано "raz dva tri dva raz raz dva". Нужно произвести поиск и подсчёт введёной пользователем последовательности...

Определить количество пробелов в заданной последовательности символов - C++
Определить количество пробелов в заданной последовательности символов. Желательно с блок схемой чтоб понять что да как.

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

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

Поиск наибольшей последовательности цифр в файле - C++
Во входном файле in.txt содержится последовательность цифр от 0 до 9, например: 1 4 4 4 3 3 2 2 2 2 4 3 3 3 0 0 0 0 1 2 3 5 1 1 1 1 1...

Поиск и замена символов в файле - C++
Добрый вечер(день)! Пытаюсь разобраться с задачей, есть файл в нем нужно найти слово и заменить на другое,замена может быть разной длины и...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
16.06.2012, 21:51 #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
#include <iostream> 
#include <fstream> 
using namespace std; 
int main() 
{ 
    setlocale(0, "rus"); // Русская консоль
    //ofstream outfile("Text.txt"); // Так создаётся файл
    ifstream infile; // входной поток
    infile.open("Text.txt");  // открываем файл
    char buffer[100]; // 
 
    char str[10]; // вводим последовательность символов
    
    cout << "Введите последовательность символов ( вводим на английском ) "; 
    cin >> str; 
        while(!infile.eof()) // считываем до конца файла 
        { 
            infile >> buffer; // считываем в буфер 
            if(!strcmp(str, buffer))  // сравниваем строки
            {
              cout << "Совпадение обнаружено " << endl; // совпадение обнаружено выходим из цикла
              break; 
            }
            
        } 
}
1
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 11:03  [ТС] #3
Цитата Сообщение от David Sylva Посмотреть сообщение
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
#include <iostream> 
#include <fstream> 
using namespace std; 
int main() 
{ 
    setlocale(0, "rus"); // Русская консоль
    //ofstream outfile("Text.txt"); // Так создаётся файл
    ifstream infile; // входной поток
    infile.open("Text.txt");  // открываем файл
    char buffer[100]; // 
 
    char str[10]; // вводим последовательность символов
    
    cout << "Введите последовательность символов ( вводим на английском ) "; 
    cin >> str; 
        while(!infile.eof()) // считываем до конца файла 
        { 
            infile >> buffer; // считываем в буфер 
            if(!strcmp(str, buffer))  // сравниваем строки
            {
              cout << "Совпадение обнаружено " << endl; // совпадение обнаружено выходим из цикла
              break; 
            }
            
        } 
}
Уважаемый, а как написать, чтобы он выводил эти последовательности? Заранее спасибо!
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 11:08 #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
#include <iostream> 
#include <fstream> 
using namespace std; 
int main() 
{ 
    setlocale(0, "rus"); // Русская консоль
    //ofstream outfile("Text.txt"); // Так создаётся файл
    ifstream infile; // входной поток
    infile.open("Text.txt");  // открываем файл
    char buffer[100]; // 
 
    char str[10]; // вводим последовательность символов
    
    cout << "Введите последовательность символов ( вводим на английском ) "; 
    cin >> str; 
        while(!infile.eof()) // считываем до конца файла 
        { 
            infile >> buffer; // считываем в буфер 
            if(!strcmp(str, buffer))  // сравниваем строки
            {
              cout << "Совпадение обнаружено " << buffer << endl; // совпадение обнаружено выходим из цикла 
                                               //  добавляем вывод                  
              break; 
            }
            
        } 
}
0
Catstail
Модератор
22616 / 10977 / 1779
Регистрация: 12.02.2012
Сообщений: 18,121
18.06.2012, 11:11 #5
Для David Sylva: мне кажется, решение не универсально... Ведь ищется целая строка, совпадающая с шаблоном. А если совпадает часть строки?
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 11:14 #6
Согласен решение не универсально.
0
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 11:16  [ТС] #7
Цитата Сообщение от David Sylva Посмотреть сообщение
cout << "Совпадение обнаружено " << buffer << endl; // совпадение обнаружено выходим из цикла
// добавляем вывод
break;
Почему он не выводит "Совпадение обнаружено ", при вводе менее чем 10 символов?
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 11:21 #8
Не понял вопроса? Я ввожу последовательность символов менее 10 и программа при совпадение выводит строку и набор искомых символов. У меня всё работает.
0
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 11:30  [ТС] #9
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 "stdafx.h"
#include "iostream"
#include <fstream> 
using namespace std; 
int main() 
{   setlocale(LC_ALL,"Russian"); 
    ofstream outfile("d:\Text.txt"); // Так создаётся файл
    ifstream infile; // входной поток
    infile.open("Text.txt");  // открываем файл
    char buffer[100]; // 
    char str[10]; // вводим последовательность символов  
    cout << "Введите последовательность символов ( вводим на английском ) "; 
    cin >> str; 
        while(!infile.eof()) // считываем до конца файла 
        { 
            infile >> buffer; // считываем в буфер 
            if(!strcmp(str, buffer))  // сравниваем строки
            {             
              cout << "Совпадение обнаружено " << buffer << endl; // совпадение обнаружено выходим из цикла 
                                               //  добавляем вывод                  
              break;  
            }        
        }  
}
Вот этот код программы?
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 11:42 #10
Обрати внимание на то, что в моём коде строка ofstream outfile заккоментирована. Как только ты компилируешь код с этой строкой он очищает твой файл. Запиши текст заново в файл и вообще убери это строчку, я ёё сделал так для наглядности.
0
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 11:50  [ТС] #11
Всё равно, ввожу например: regerg fewrff eff такую последовательность, затем нажимаю Enter и ничего не появляется. Ещё такой вопрос: а где создается этот файл?
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 12:02 #12
Это логично потому что твой файл пустой. Файлы создаются в твоём проекте или там где они у тебя располагаются. Возьми мой код со строкой ofstream запусти его. Он создаст файл Text.txt в твоём проекте. Потом внеси в нёго несколько строчек на английском. Закомментируй строку ofstream и запусти и будет тебе счастье.
0
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 12:19  [ТС] #13
Запустил программу и ввёл в консоли строчку(строка ofstream outfile("Text.txt"); не заккоментирована). Затем заккоментил и запустил появляется всё то же "Введите последовательность символов ( вводим на английском ) ", ввожу и ничего. Всё правильно?
0
David Sylva
1286 / 948 / 51
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 12:25 #14
Нет не правильно. В консоли ничего вводить не надо. В той папке где располается твой проект, создаёшь файл с расширение txt или doc всё равно. Вносишь в него информацию. Затем убери из исходного кода строчку ofstream и откомпилируй код.
0
Dady
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 12:36  [ТС] #15
Создал файл в папке проекта, записал в него строку. Затем закомпилил программу без строки ofstream outfile("Text.txt") и появляется в консоли всё то же: "Введите последовательность символов ( вводим на английском ) " Зачем тогда вообще это сообщение, если мы в консоли ничего не вводим?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
18.06.2012, 12:36
Привет! Вот еще темы с ответами:

Поиск последовательности в массиве символов - C++
есть массив ascii символов мне нужно там найти последовательность (строку) есть какие-нибудь функции для поиска последовательности. в...

Сделать подсчет частоты встречаемости последовательности символов АБВ в текстовом файле - C++
Народ помогите пожалуйста решить задачу: подсчет частоты встречаемости последовательности символов АБВ в текстовом файле?

Поиск, считывание и замена символов в файле [C++] - C++
И снова здраствуйте! Нужно, чтобы программа находила в файле число от 0 до 5120, а после считывала оттуда данные после точки, присваивала...

Поиск последовательности символов и ее замена на другую - C++
Дана строка. Найти последовательность символов, например &quot;!!&quot; и заменить ее на &quot;??&quot; Прошу помощи!


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
18.06.2012, 12:36
Ответ Создать тему
Опции темы

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