Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.55/29: Рейтинг темы: голосов - 29, средняя оценка - 4.55
0 / 0 / 0
Регистрация: 30.06.2015
Сообщений: 11
1

Удалить повторяющиеся строки

06.10.2015, 19:14. Показов 5361. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
В массиве строк нужно удалить повторяющиеся строки.
В программе динамически выделил память, инициализировал, строки вводятся с клавиатуры и выводятся на экран.
Нужна функция, которая бы удаляла строки, которые повторяются.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.10.2015, 19:14
Ответы с готовыми решениями:

Удалить из строки все лишние пробелы: в начале, в конце, повторяющиеся
Дана строка предложение. Удалить из строки все лишние пробелы: в начале, в конце, повторяющиеся. ...

Удалить повторяющиеся предложения
Не представляю как реализовать?:cry:

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

Удалить повторяющиеся элементы из массива
Требуется: Удалить из 2-мерного массива повторяющиеся элементы, оставив только первое вхождение...

1
838 / 641 / 940
Регистрация: 26.06.2015
Сообщений: 1,409
07.10.2015, 06:07 2
Лучший ответ Сообщение было отмечено StaD как решение

Решение

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
#include <stdio.h>
#include <string.h>
#include <malloc.h>
 
//удаление дубликатов
size_t array_unique(char** arr, size_t size){
    size_t j, i;
    for(i = 0; i < size; ++i){
        for(j = i + 1; j < size; ++j){
            if(! strcmp(arr[j], arr[i])){
                free(arr[j]);
                arr[j] = arr[--size]; 
                --j;
            }
        }
    }
    return size;
}
 
int main(void){
    size_t i, size = 7;
    char** arr  = (char**)malloc(size * sizeof(char*));
    if(arr == NULL)
        return 1;
    
    arr[0] = strdup("Бизон");
    arr[1] = strdup("Зубр");
    arr[2] = strdup("Зубр");
    arr[3] = strdup("Овцебык");
    arr[4] = strdup("Бизон");
    arr[5] = strdup("Бизон");
    arr[6] = strdup("Овцебык");
    //иходный вывод
    for(i = 0; i < size; ++i)
        puts(arr[i]);
    putchar('\n');
 
    size = array_unique(arr, size);
 
    //вывод после удаление дубликатов
    for(i = 0; i < size; ++i)
        puts(arr[i]);
 
    for(i = 0; i < size; ++i)
        free(arr[i]);
    free(arr);
    return 0;
}
Пример работы кода
0
07.10.2015, 06:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
07.10.2015, 06:07
Помогаю со студенческими работами здесь

Удалить повторяющиеся элементы из массива символов
Как удалить повторяющиеся элементы из массива символов? char str={&quot;abcdea&quot;};

В символьной строке удалить повторяющиеся слова
В символьной строке удалить повторяющиеся слова.

Удалить повторяющиеся элементы из односвязного списка
Я написал программу, которая удаляет дубликаты в списки, оставляя только его первое вхождение. Но...

Удалить повторяющиеся строки
Для составления некой базы уникальной потребовалось удалять все те строки которые ранее попадались,...


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

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