Построить частотный словарь слов строки и вывести их в алфавитном порядке - C (СИ)

Узнай цену своей работы

Формулировка задачи:

С клавиатуры вводится строка. Нужно построить частотный словарь слов строки и вывести их в алфавитном порядке. Разделителями считаются пробел и табуляция. я хочу использовать массив структур, в которых в конечном итоге будет записано слово и сколько раз оно встречается. struct wotd{ int count; char * w; }; Подскажите, пожалуйста, как выделить слова)))

Решение задачи: «Построить частотный словарь слов строки и вывести их в алфавитном порядке»

textual
Листинг программы
#include <stdio.h>
#include <ctype.h>
 
typedef struct word_t
{
    char* string;
    size_t length;
}   TWord;
 
//-----------------------------------------------------------------------------
TWord GetWord(char* text)
{
    char* begin = text;
    char* end;
 
    for (; *begin && isspace(*begin); ++begin) { ; }
 
    for (end = begin; *end && !isspace(*end); ++end) { ; }
 
    TWord word = {begin, end - begin};
 
    return word;
}
//-----------------------------------------------------------------------------
void PrintAllWords(char* text)
{
    TWord word;
 
    while (*text)
    {
        word = GetWord(text);
        printf("%.*s\n", word.length, word.string);
 
        text += word.length + 1;
    }
}
//-----------------------------------------------------------------------------
 
int main(int argc, const char* argv[])
{
    char text[] = "Other locales may consider a different"
                  "selection of characters as white-spaces";
 
    PrintAllWords(text);
 
    return 0;
}

Объяснение кода листинга программы

Вывод списка элементов кода:

  1. Тип данных TWord представляет структуру слова, содержащую строку и длину строки.
  2. Функция GetWord() извлекает слова из текста, используя пробелы в качестве разделителей.
  3. Функция PrintAllWords() печатает все слова в тексте.
  4. В функции main() определен массив текста для обработки.
  5. Вызывается функция PrintAllWords() для печати всех слов в массиве текста.
  6. Программа завершается без ошибок.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

15   голосов , оценка 3.867 из 5
Похожие ответы