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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.78
danslash
0 / 0 / 0
Регистрация: 27.03.2010
Сообщений: 6
27.03.2010, 21:39     Поиск повторяющихся (строковых) элементов в массиве #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;
 
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.03.2010, 21:39     Поиск повторяющихся (строковых) элементов в массиве
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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;
}
Люди... ну подскажите хотя бы как мне вырезанные строки с вектора (красным выделенно)занести в массив или другой вектор
Yandex
Объявления
29.03.2010, 01:44     Поиск повторяющихся (строковых) элементов в массиве
Ответ Создать тему
Опции темы

Текущее время: 22:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru