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

Отсортировать слова в файле по количеству букв

29.05.2018, 20:44. Показов 1605. Ответов 1
Метки нет (Все метки)

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

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

Отсортировать слова по количеству букв
Задан одномерный массив слов А длины М. Слова составлены из символов. Отсортировать слова по...

Отсортировать слова в файл по количеству букв - С и С++
Помогите написать программу на языке С или Visual С++. Сам не очень разбираюсь, желательно чтобы...

Отсортировать слова по количеству гласных букв
Помогите написать программу для Visual C++. Сам не очень разбираюсь, желательно чтобы было понятно....

1
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
12458 / 7482 / 1753
Регистрация: 25.07.2009
Сообщений: 13,762
30.05.2018, 01:57 2
Лучший ответ Сообщение было отмечено Vlados_DDOS как решение

Решение

Цитата Сообщение от Vlados_DDOS Посмотреть сообщение
Буквы Английские
Как-то непатриотично, пусть уж и (или) русские выводит.
Цитата Сообщение от Vlados_DDOS Посмотреть сообщение
желательно чтобы было понятно
Да не вопрос!
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
#include <glib.h>
#include <locale.h>
#include <assert.h>
 
gint lencmp(gconstpointer a, gconstpointer b) {
    return GPOINTER_TO_INT((gpointer)a) - GPOINTER_TO_INT((gpointer)b);
}
 
gboolean print_words(gpointer key, gpointer value, gpointer data) {
    for ( GSList * list = (GSList*) value; list; list = g_slist_next(list) )
        g_print("%s\n", (gchar*)(list->data));
        
    return FALSE;
}
 
gboolean free_list(gpointer key, gpointer value, gpointer data) {
    g_slist_free((GSList*) value);
    
    return FALSE;
}
     
#define FILE_NAME "rustext.txt"
 
int main(void) {
    char * oldloc = setlocale(LC_ALL, "ru_RU.UTF-8");
    assert(oldloc);
    
    gchar * content;
    gsize len;
    GError * err;
    
    if ( ! g_file_get_contents(FILE_NAME, &content, &len, &err) ) {
        g_print("Can't read file: %s\n", (err) ? err->message : "unknown reason");
        return 1;
    }
    
    gchar ** allwords, **iter;
    allwords = g_strsplit_set(content, " ,.!?\t\n", -1);
    GTree * counters = g_tree_new(lencmp);
    for ( iter = allwords; *iter; ++iter ) {
        if ( (*iter)[0] ) {
            gint len = (gint) g_utf8_strlen(*iter, -1);
            GSList * list = (GSList*) g_tree_lookup(counters, GINT_TO_POINTER(len));
            if ( list && g_slist_find_custom(list, *iter, (GCompareFunc)g_strcmp0) )
                continue;
            list = g_slist_prepend(list, *iter);
            g_tree_insert(counters, GINT_TO_POINTER(len), list);
        }
    }
    g_tree_foreach(counters, print_words, NULL);
    
    
    g_tree_foreach(counters, free_list, NULL);
    g_tree_destroy(counters);
    g_strfreev(allwords);
    g_free(content);
    setlocale(LC_ALL, oldloc);
    
    return 0;
}
Код
[andrew@easybook files]$ gcc -Wall -std=c99 words_by_length.c `pkg-config --cflags --libs glib-2.0`
[andrew@easybook files]$ ./a.out 
и
из
для
этот
букв
текст
читают
русских
текстов
буквами
Читатели
русскими
Какой-то
читателей
писателем
написанный
восхищаются
[andrew@easybook files]$
rustext.txt
Код
Какой-то текст, написанный писателем русскими буквами для читателей текстов из русских букв.
Читатели читают этот текст и восхищаются.


Не по теме:

Кстати, думаю - тут есть утечка памяти. Нашедшему, или обосновавшему, что её нет - бонус!

2
30.05.2018, 01:57
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.05.2018, 01:57
Помогаю со студенческими работами здесь

В заданном символьном массиве отсортировать слова по количеству букв (по возрастанию)
Здравствуйте, ребята! Мне нужно отсортировать слова по количеству букв(по возрастанию). Правда в...

Отсортировать список по количеству гласных букв в слове
Добрый вечер, Как можно отсортировать список по кол-ву гласных? У меня присутствует сортировка по...

Сортировать слова по количеству букв (по возрастанию)
Задано строку из трех слов. Выделить отдельные слова и записать их в массив, рассортировав по...

Расположить слова по количеству увеличения букв
Имеется строка примерно вот такого вида: &quot;Расположить во количеству увеличения букв 1.абгда...


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

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