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

Сортировка строк файла в алфавитном порядке

13.12.2009, 16:59. Показов 19307. Ответов 4
Метки нет (Все метки)

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

Сортировка массива строк в алфавитном порядке
Здравствуйте. У меня такой вопрос. Как можно переписать этот кусок кода, отвечающий за сортировку...

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

Сортировка массива строк в алфавитном порядке любым методом, кроме метода прямого обмена («пузырька»)
Написать программу по выводу 4-6 строк и сортировать их в алфавитном порядке любым методом , кроме...

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

4
Временно недоступен
957 / 228 / 14
Регистрация: 12.04.2009
Сообщений: 926
13.12.2009, 17:40 2
Попробую предложить свой неказистый вариант.
Создаём некую структуру,данные в которой - это буфер со строкой (можно и порядковый номер в файле),а также вес.
Вес строки можно определить примерно так: каждый символ строки можно представить как число,определяющее расстояние символа от первого символа в таблице (будь то 'a' или ещё что-то).Это вес самого символа. Далее нужно сравнить каждый символ с последующим,и определить расстояние в таблице между ними,если оно отрицательное (например "da") то общий вес должен уменьшиться,если положительное - увеличиться.Потом просто сортируем структуры по весу и пишем строки в файл.
Но,скорее всего,можно как-то проще
0
Эксперт С++
7175 / 3234 / 81
Регистрация: 17.06.2009
Сообщений: 14,164
13.12.2009, 22:04 3
1) Загружаем все строки из файла в массив типа такого:
char **lines;

2) сортируем массив, используя функцию strcmp()

3) записываем массив в файл
1
577 / 571 / 65
Регистрация: 29.01.2009
Сообщений: 1,274
13.12.2009, 22:27 4
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от kroff Посмотреть сообщение
Совсем не разбираюсь в файлах(( Напишите пожалйуста, как можно провести сортировку строк файла в алфавитном порядке в Си???
Здесь таких примеров тонны валяются. Один из
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 <stdlib.h>
#include <string.h>
 
#define MAXLINE 4096
#define IFNAME "in.txt"
#define OFNAME "out.txt"
 
int scmp(const void *p1, const void *p2)
{
    const char *s1, *s2;
 
    s1 = * (char **) p1;
    s2 = * (char **) p2;
    return strcmp(s1, s2);
}
 
int main(void)
{
    FILE *ifp, *ofp;
    char *lineptr[MAXLINE];
    char s[MAXLINE];
    int i, nl;
 
    ifp = fopen(IFNAME, "r");
    if(ifp == NULL || (ofp = fopen(OFNAME, "w")) == NULL) {
        perror("fopen");
        return -1;
    }
 
    for(i = 0; i < MAXLINE; ) {
        if(fgets(s, sizeof(s), ifp) == NULL)
            break;
        if(*s != '\n')
            lineptr[i++] = strdup(s);
    }
 
    nl = i;
    qsort(lineptr, nl, sizeof(char *), scmp);
 
    for(i = 0; i < nl; i++) {
        fprintf(ofp, "%s", lineptr[i]);
        free(lineptr[i]);
    }
    fclose(ifp);
    fclose(ofp);
    return 0;
}
0
kroff
15.12.2009, 23:54 5
Спасибо большое!=)
15.12.2009, 23:54
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.12.2009, 23:54
Помогаю со студенческими работами здесь

Сортировка строк в алфавитном порядке
Собственно сабж) Вроде бы сделал что-то похожее, но ошибка запрета доступа, если вводить строки с...

Сортировка строк матрицы в алфавитном порядке
Создаем двумерный динамический массив в котором надо отсортировать строки в алфавитном порядке. ...

Сортировка строк в обратном алфавитном порядке
Задача:Напишите процедуру сортировки строк в обратном алфавитном порядке. Код: { class...

Сортировка строк в обратном алфавитном порядке
Помогите , написать сортировку строк в обратном алфавитном порядке. К примеру: Анна пошла гулять -...


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

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