2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
1

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

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

Author24 — интернет-сервис помощи студентам
Друзья, помогите плиз!!! Нужно написать программу поиска в файле заданной последовательности символов не превышающей по длине 10 знаков. Заранее благодарю!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.06.2012, 17:51
Ответы с готовыми решениями:

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

Поиск и замена заданной последовательности символов в заданном файле
Программа должна выполнять поиск заданной последовательности символов в заданном файле, менять ее...

В последовательности символов заданной в текстовом файле, посчитать общее кол-во символов
В последовательности символов, заданной в текстовом файле, посчитать общее кол-во символов + - *

В последовательности символов, заданной в текстовом файле, посчитать общее кол-во символов
В последовательности символов, заданной в текстовом файле, посчитать общее кол-во символов + - *

18
1321 / 983 / 267
Регистрация: 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
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
1321 / 983 / 267
Регистрация: 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
Модератор
Эксперт функциональных языков программированияЭксперт Python
36578 / 20308 / 4218
Регистрация: 12.02.2012
Сообщений: 33,607
Записей в блоге: 13
18.06.2012, 11:11 5
Для David Sylva: мне кажется, решение не универсально... Ведь ищется целая строка, совпадающая с шаблоном. А если совпадает часть строки?
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 11:14 6
Согласен решение не универсально.
0
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 11:16  [ТС] 7
Цитата Сообщение от David Sylva Посмотреть сообщение
cout << "Совпадение обнаружено " << buffer << endl; // совпадение обнаружено выходим из цикла
// добавляем вывод
break;
Почему он не выводит "Совпадение обнаружено ", при вводе менее чем 10 символов?
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 11:21 8
Не понял вопроса? Я ввожу последовательность символов менее 10 и программа при совпадение выводит строку и набор искомых символов. У меня всё работает.
0
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
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 11:42 10
Обрати внимание на то, что в моём коде строка ofstream outfile заккоментирована. Как только ты компилируешь код с этой строкой он очищает твой файл. Запиши текст заново в файл и вообще убери это строчку, я ёё сделал так для наглядности.
0
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 11:50  [ТС] 11
Всё равно, ввожу например: regerg fewrff eff такую последовательность, затем нажимаю Enter и ничего не появляется. Ещё такой вопрос: а где создается этот файл?
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 12:02 12
Это логично потому что твой файл пустой. Файлы создаются в твоём проекте или там где они у тебя располагаются. Возьми мой код со строкой ofstream запусти его. Он создаст файл Text.txt в твоём проекте. Потом внеси в нёго несколько строчек на английском. Закомментируй строку ofstream и запусти и будет тебе счастье.
0
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 12:19  [ТС] 13
Запустил программу и ввёл в консоли строчку(строка ofstream outfile("Text.txt"); не заккоментирована). Затем заккоментил и запустил появляется всё то же "Введите последовательность символов ( вводим на английском ) ", ввожу и ничего. Всё правильно?
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 12:25 14
Нет не правильно. В консоли ничего вводить не надо. В той папке где располается твой проект, создаёшь файл с расширение txt или doc всё равно. Вносишь в него информацию. Затем убери из исходного кода строчку ofstream и откомпилируй код.
0
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 12:36  [ТС] 15
Создал файл в папке проекта, записал в него строку. Затем закомпилил программу без строки ofstream outfile("Text.txt") и появляется в консоли всё то же: "Введите последовательность символов ( вводим на английском ) " Зачем тогда вообще это сообщение, если мы в консоли ничего не вводим?
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 12:43 16
Со строкой так понятней. Как назвал файл? Если не получается, внеси обратно строку ofstream и назови файл по другому в исходном коде то есть вместо Text.txt по другому, скомпилируй и глянь где появится этот файл. Может быть ты создал не в той папке.
0
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 12:52  [ТС] 17
Проверил папка та самая, создал в ней файл Text.txt, записал в неё строку. Затем компилю и выводится сообщение "Введите последовательность символов ( вводим на английском ) ". В чём может быть проблема? И зачем это сообщение, если мы в консоли ничего не вводим?
0
1321 / 983 / 267
Регистрация: 17.05.2012
Сообщений: 2,687
18.06.2012, 12:55 18
Сообщение для наглядности ни для чего более. Я не знаю в чём у тебя проблема.У меня всё работает так как надо.
0
2 / 2 / 0
Регистрация: 20.03.2012
Сообщений: 53
18.06.2012, 13:02  [ТС] 19
А почему именно на английском?
0
18.06.2012, 13:02
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.06.2012, 13:02
Помогаю со студенческими работами здесь

Поиск заданного шаблона (последовательности символов) в файле [RedHat]
Суть задания : &quot;Написать программу осуществляющую поиск заданного шаблона(последовательности...

Выбрать из заданной последовательности символов слова заданной длинны, и напечатать их по одному на строке
Вводится не пустая последовательность символов отдельные слова в ней разделены пробелами выбрать из...

В заданной последовательности символов определить количество символов «*», стоящих после двоеточия
Дана последовательность символов, заканчивающаяся точкой. Известно, что среди этих символов есть...

Дана строка символов. В заданной последовательности найдите все слова, начинающиеся с заданной приставки. php
Дана строка символов. В заданной последовательности найдите все слова, начинающиеся с заданной...

В заданной последовательности символов подсчитать количество символов + и исключить их из текста
В заданной последовательности символов подсчитать количество символов + и исключить их из текста

В исходной строке а$ заменить все вхождения заданной последовательности символов x$ на другую заданную последовательность символов y$
В исходной строке а$ заменить все вхождения заданной последовательности символов x$ на другую...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru