Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.62/21: Рейтинг темы: голосов - 21, средняя оценка - 4.62
5 / 4 / 3
Регистрация: 02.12.2012
Сообщений: 80
1

Поиск повторяющихся строк в файле

01.02.2016, 20:14. Показов 3914. Ответов 5
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Нужна рекомендация!
Есть сгенерированные цепочки (строки) которые записаны и в файл, и естественно выводятся с него.
Нужно сделать так, чтобы цепочки (строки) при записи в файл не повторялись, то есть все цепочки(строки) должны быть разные.
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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#include <iostream>
#include <stdlib.h>
#include <time.h>
#include <string>
#include <stdio.h>
#include <fstream>
#include <regex>
using namespace std;
//7 вариант (6 с 0)
//длина цепочки 4 < L < 9, а количество цепочек 15
//Содержит не более двух символов «с», начинается на «ас», а символы «а» встречается только по одному
 
int main()
{
    int m, k, i, c, j, kolvo, f, a;
    char str[15];
    
    srand(time(NULL));
    ofstream fout("file.txt"); //открываем файл file.txt
    regex proverka("");
 
    kolvo = 0;
    while (kolvo < 15)
    {
        for (i = 0; i < 9; i++)
        {
            m = 97 + rand() % 3;//Генерация символа
            str[i] = m;//Присвоение ячейке строки соответственного символа
        }
        k = 4 + rand() % 9; //выбор окончания строки с помощью нуль-терминатора
        str[k] = '\0';
        c = 0;
        j = 0;
        f = 0;
        a = 0;
        int length_string = strlen(str);//Определение длинны сгенерированной строки
        //Блок проверки цепочки на принадлежность заданому правилу
        //-----------------------------
        if (*(str) == 'a' && *(str + 1) == 'c') { //начинается на 'ac'
            for (i = 0; i < (length_string); i++)
            {
                if (*(str + i) == 'c') //для символов 'c'
                    c++;
                if (*(str + i) == 'a')
                {
                    f++; //количество всех букв 'a'
                    if (*(str + i + 1) != 'a')
                        if (*(str + i - 1) != 'a')
                            j++;//количество "одиноких 'а'"
                }
            }
            //Блок вывода цепочек удовлетворяющих условие
            //-----------------------------
            if (c > 0 && c <= 2 && j == f) //условие для цепочки
            {
                //printf("%s\n", str);
                string s = string(str);
                fout << s << "\n"; //записываем строку в файл
                kolvo++;
            }
            //-----------------------------
        }
    }
    fout.close(); //закрываем файл file.txt
    
    string str2;
    ifstream in;
    in.open("file.txt");
    while (!in.eof())
    {
        in >> str2;
        cout << str2 << endl;
    }
    in.close();
 
    system("pause");
    return 0;
}
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
01.02.2016, 20:14
Ответы с готовыми решениями:

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

Поиск повторяющихся символов в тексте и удаление таких строк
нужен готовый .exe. Есть .txt файлы, в нем нужно по удалять строчки - где какой либо символ...

Удаление повторяющихся строк в файле
Aлгоритм удаления повторяющихся строк из файла подскажите, ато недогоняю. Как именно сравнить...

Поиск повторяющихся слов в файле
Доброго времени суток. Задание такое: вывести на стандартный выходной поток список всех различных...

5
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
01.02.2016, 23:57 2
кладете данные из файла в set , затем из set в файл
1
5 / 4 / 3
Регистрация: 02.12.2012
Сообщений: 80
02.02.2016, 20:03  [ТС] 3
Не могу понять, это через algorithm и set библиотеку?
Извините, а можно пример, если не сложно, а то у меня не особые знания в C++
0
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
02.02.2016, 20:20 4
Цитата Сообщение от Andrey17 Посмотреть сообщение
algorithm и set библиотеку
да
C++
1
2
3
4
5
6
7
8
9
10
int main() {
    string a[6] = { "a","g","a","b","c","g" };
    set<string> b;
    for (int i = 0;i < 6;i++)
        b.insert(a[i]);
    set<string>::iterator i;
    for (i = b.begin();i != b.end();i++)
        cout << *i << " ";
    return 0;
}
1
5 / 4 / 3
Регистрация: 02.12.2012
Сообщений: 80
02.02.2016, 21:15  [ТС] 5
И как записать это в файл?
0
Dimension
594 / 462 / 223
Регистрация: 08.04.2014
Сообщений: 1,710
02.02.2016, 22:07 6
Лучший ответ Сообщение было отмечено Andrey17 как решение

Решение

так же как и раньше записывали
1
02.02.2016, 22:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
02.02.2016, 22:07
Помогаю со студенческими работами здесь

Найти количество повторяющихся строк (элементов) в текстовом файле
Прошу помощи у экспертов. Нужно подсчитать из текстового файла количество всех повторяющихся...

Поиск повторяющихся строк
Всем привет! Мне необходимо сделать макрос, который будет выделять цветом все повторяющиеся строки...

Удаление повторяющихся строк в txt файле, с учетом производительности (в больших файлах)
Добрый день! Помогите пожалуйста. Задача: удаление дубликатов в очень больших текстовых ...

Проверка, сравнение и поиск повторяющихся IP адресов в сохраняемом файле txt (csv)
Хлопцы, подскажите пожалуйста скрипт или решение какое, чтоб когда скрипт определяет IP-адрес на...


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

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