Форум программистов, компьютерный форум, киберфорум
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 5.00/6: Рейтинг темы: голосов - 6, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 24.01.2014
Сообщений: 12
1

Посчитать сколько слов, содержит текст произвольной длинны

30.03.2014, 11:35. Показов 1122. Ответов 1
Метки нет (Все метки)

Посчитать сколько слов, содержит текст произвольной длинны. Разделителем между словами является
символ пробела. Вывести на экран список всех встречающихся в тексте слов и их количество. Указание:
использовать связный список.

Буду рад подсказкам!Заранее спасибо!
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
30.03.2014, 11:35
Ответы с готовыми решениями:

Посчитать сколько слов в предложении содержит 5 символов
Дано предложение, посчитать сколько слов в нем содержит 5 символов. Добавлено через 8 минут...

Посчитать, сколько слов содержит текст произвольной длины.
Посчитать сколько слов, содержит текст поисзвольной длины. Разделителем между словами является...

Посчитать, сколько слов содержит строкв
нужно написать программу на С: дана строка символов до точки. Посчитать,сколько слов она содержит....

Посчитать, сколько слов в тексте начинается с большой буквы или содержит дефис
Нужно посчитать, сколько слов в тексте начинается с большой буквы или содержит дефис. Я полный ноль...

1
...
1799 / 1264 / 934
Регистрация: 12.02.2013
Сообщений: 2,058
30.03.2014, 14:21 2
Лучший ответ Сообщение было отмечено NoobieUserN как решение

Решение

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
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
#include <stdio.h>
#include <string.h>
#include <ctype.h>
 
typedef struct word_t {
    char* ptr;
    unsigned len;
}   TWord;
 
typedef struct info_t {
    TWord word;
    unsigned cnt;
}   TInfo;
 
typedef struct node_t {
    TInfo info;
    struct node_t* next;
}   TNode;
 
//-----------------------------------------------------------------------------
TNode* Find(TNode* list, TWord word) {
    for (; list; list = list->next) {
        if ((word.len == list->info.word.len) &&
            (strncmp(word.ptr, list->info.word.ptr, word.len) == 0)) {
            return list;
        }
    }
 
    return NULL;
}
//-----------------------------------------------------------------------------
void Push(TNode** list, TWord word) {
    TNode* node = Find(*list, word);
 
    if (node) {
        node->info.cnt++;
    }
    else {
        node = malloc(sizeof(TNode));
        node->info.cnt = 1;
        node->info.word.ptr = word.ptr;
        node->info.word.len = word.len;
        node->next = *list;
 
        *list = node;
    }
}
//-----------------------------------------------------------------------------
void Print(const TNode* list) {
    for (; list; list = list->next) {
        printf("%.*s : %u\n",
               list->info.word.len,
               list->info.word.ptr,
               list->info.cnt);
    }
}
//-----------------------------------------------------------------------------
int GetWord(char* text, TWord* word) {
    for (; *text && (!isalpha(*text)); ++text) { ; }
    word->ptr = text;
 
    for (; (isalpha(*text)); ++text) { ; }
    word->len = text - word->ptr;
 
    return word->len;
}
//-----------------------------------------------------------------------------
TNode* GetList(char* text) {
    TNode* list = NULL;
    TWord word;
 
    while (*text) {
        if (GetWord(text, &word)) {
            Push(&list, word);
 
        }
        text += word.len + 1;
    }
 
    return list;
}
//-----------------------------------------------------------------------------
 
int main() {
    char text[] = "dame trot and her cat\n"
                  "sat down for a chat;\n"
                  "the dame sat on this side\n"
                  "and puss sat on that.";
 
    TNode* list = GetList(text);
 
    Print(list);
 
    return 0;
}
Примечание: сравнение слов регистрозависимое.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
30.03.2014, 14:21

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Посчитать количество слов в указанном предложении и определить, содержит ли заданный текст Вашу фамилию
Дан текст. Посчитать количество слов в предложении. Содержит данный текст вашу фамилию?

Текст занимает 0,25 Кбайт памяти компьютера. Сколько символов содержит этот текст?
Текст занимает 0,25 Кбайт памяти компьютера. Сколько символов содержит этот текст?

Посчитать общее количество слов и определить, сколько слов в этом тексте состоит из двух символов
1) Заданы: массив наименований продукции и соответствующие ему данные плановой рентабельности...

Посчитать сколько двоичных единиц содержит каждое число
Дан цифровой массив , посчитать сколько двоичных единиц содержит каждое число

Сколько слов содержит строка
Дана строка символов. Группы символов в ней между группами пробелов считаются словами. Определить,...

Масив произвольной длинны
Функция, аналог range в других языках, только для заполнения массива. (range 10 30 2) '(10 12...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.