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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
danslash
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 6
#1

Поиск повторяющихся (строковых) элементов в массиве - C++

27.03.2010, 21:39. Просмотров 1161. Ответов 1
Метки нет (Все метки)

Друзья помогите пожалуйста встала такая задача.
Есть 3 файла со строчками нужно найти и вывести строчки которые повторяються и вывести сколько раз.
Сделал 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
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
int main()
{
    Line* values = NULL;
    unsigned int lines = 1;
    unsigned int lines1 = 1;
 
    ifstream InFile("input.txt");
    ifstream InFile1("input1.txt");
 
    if(!InFile) {
        cerr << "Error, while opening file! Exit." << endl;
        exit(1);
    }
    
    if(!InFile1) {
        cerr << "Error, while opening file! Exit." << endl;
        getch();
        exit(1);
    }
 
    while(!InFile.eof()) {
        if(InFile.get() == '\n')
            lines++;
    }
                            cout << lines << endl;
    while(!InFile1.eof()) {
        if(InFile1.get() == '\n')
            lines1++;
    }
                        cout << lines1 << endl;
    InFile1.clear();
    InFile1.seekg(ios::beg);
    InFile.clear();
    InFile.seekg(ios::beg);
 
 
    values = new Line[lines];
    memset(values, 0, sizeof(Line)*lines);
 
    for(unsigned int i = 0; i < lines; i++) {
        InFile >> values[i].name;
    }
    for(unsigned int i = lines; i <lines+lines1 ; i++) {
        InFile1 >> values[i].name;
    }
 
    //delete[] values;
    InFile.close();
    int kol=0;
            for(unsigned int i = 0; i < lines+lines1; i++) {
                            for(unsigned int j = i; j < lines+lines1; j++) {
                                if(values[i].name==values[j].name)
                                {
                                    kol=kol+1;
                                }
                            //cout << values[j].name << endl;
                            }
                    cout << values[i].name << endl;
                    }
cout<<kol<<endl;
getch();
    return 0;
 
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2010, 21:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск повторяющихся (строковых) элементов в массиве (C++):

Поиск повторяющихся элементов в массиве - C++
Если повторяющихся элементов 2 (например: 1 2 3 1) - то выдвигает 1 элемент(правильно), если же их больше чем 2 (например 1 2 1 3 1) - то...

Работа с массивами в С++ . Поиск отличающихся элементов двух строковых массивов - C++
Как заполнить массив элементами , которые отличают массивы между собой? Например , есть 1-ый массив ( &quot;1.txt&quot;, &quot;2.txt&quot;) и ест 2-ой...

Количество повторяющихся элементов в массиве - C++
Даны натуральное n и целые a1, a2, ..., an. Для каждого аi найти ki количество его повторов последовательности. P.S. нужно...

Количество повторяющихся элементов в массиве - C++
Программа считает количество повторяющихся элементов в массиве. Часть где вводится массив , необходимо реализовать как функцию. ...

Вывод не повторяющихся в массиве В, элементов массива А - C++
Доброго времени суток.Помогите пожалуйста с задачкой. Ввести массивы А и В. В массив С скопировать те элементы массива А, которых нет в...

Найти количество не повторяющихся элементов в массиве - C++
Знаю что условие в цикле не то, но больше в голову нечего не лезет. У кого идеи есть? #include &lt;iostream&gt; #include &lt;conio.h&gt; using...

1
danslash
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 6
29.03.2010, 01:44  [ТС] #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
33
34
35
36
37
38
int main()
{
    string s;
    vector<string> test;
    vector<string> test1;
 
    ifstream in("input.txt");
 
    for(;in>>s;)
        test.push_back(s);
    //cout<<test[0];
 
 
    for (vector<string>::iterator cur=test.begin();cur!=test.end();++cur)
        cout<<*cur<<' ';
    cout<<endl;
 
    for(int j = 0;j<test.size();++j)
    {
        for(int i = 0;i<test.size();++i)
        {
            if(test[i] == test[j] && i!=j)
            {
                [COLOR="Red"]test.erase(test.begin() + i);[/COLOR]
            }
        }
    }
 
//  sort(test.begin() , test.end());
//  unique(test.begin() , test.end());
 
    for (vector<string>::iterator cur=test.begin();cur!=test.end();++cur)
        cout<<*cur<<' ';
 
    cout<<endl;
    getch();
    return 0;
}
Люди... ну подскажите хотя бы как мне вырезанные строки с вектора (красным выделенно)занести в массив или другой вектор
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.03.2010, 01:44
Привет! Вот еще темы с ответами:

В целочисленном массиве найти количество повторяющихся элементов - C++
В целочисленном массиве нужно найти количество повторяющихся элементов. Как это сделать кто-то может подсказать?

Самая длинная последовательность не повторяющихся элементов в массиве - C++
Помогите!! нужно написать программу,которая выводит на экран самую длинную последовательность не повторяющихся элементов в массиве.

Бинарный поиск для нахождения количества повторяющихся элементов - C++
Здравствуйте. Стоит следующая несложная задача: Дан массив (отсортированный). Например 1 1 1 4 5 6 6 6 6 6 6 6 При вводе...

Поиск элементов в массиве - C++
Пожалуйста,помогите решить задачи. 1)Дан одномерный массив А.Найти максимальный по модулю элемент данного массива 2)Даны два...


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

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

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