Форум программистов, компьютерный форум CyberForum.ru

Повтор слов в файле - C++

Восстановить пароль Регистрация
 
diman94x
5 / 5 / 1
Регистрация: 13.06.2009
Сообщений: 67
18.12.2011, 23:55     Повтор слов в файле #1
Ребят, нужна прогамма которая подсчитывает сколько раз какое слово повторяется. Слова берутся из файла. На Си.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.12.2011, 23:55     Повтор слов в файле
Посмотрите здесь:

Количество слов в файле! C++
Поиск слов в файле C++
подсчет слов в файле. C++
Перенос слов в файле C++
C++ Количество слов в файле. С++
C++ Поиск в текстовом файле всех слов, заданных в другом текстом файле
C++ Смена слов в файле
Сравнение слов в одном файле со словами в другом файле C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ilyawow
24 / 24 / 5
Регистрация: 18.11.2011
Сообщений: 266
25.05.2012, 09:45     Повтор слов в файле #2
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
struct Node {
char word[40]; // область данных
int count;
Node *next; // ссылка на следующий узел
};
typedef Node *PNode; // тип данных: указатель на узел
PNode CreateNode ( char NewWord[] )
{
PNode NewNode = new Node; // указатель на новый узел
strcpy(NewNode->word, NewWord); // записать слово
NewNode->count = 1; // счетчик слов = 1
NewNode->next = NULL; // следующего узла нет
return NewNode; // результат функции – адрес узла
}
void AddFirst (PNode &Head, PNode NewNode)
{
NewNode->next = Head;
Head = NewNode;
}
void AddAfter (PNode p, PNode NewNode)
{
NewNode->next = p->next;
p->next = NewNode;
}
void AddBefore(PNode &Head, PNode p, PNode NewNode)
{
PNode q = Head;
if (Head == p) {
AddFirst(Head, NewNode); // вставка перед первым узлом
return;
}
while (q && q->next!=p) // ищем узел, за которым следует p
q = q->next;
if ( q ) // если нашли такой узел,
AddAfter(q, NewNode); // добавить новый после него
}
void AddLast(PNode &Head, PNode NewNode)
{
PNode q = Head;
if (Head == NULL) { // если список пуст,
AddFirst(Head, NewNode); // вставляем первый элемент
return;
}
while (q->next) q = q->next; // ищем последний элемент
AddAfter(q, NewNode);
}
PNode Find (PNode Head, char NewWord[])
{
PNode q = Head;
while (q && strcmp(q->word, NewWord))
q = q->next;
return q;
}
PNode FindPlace (PNode Head, char NewWord[])
{
PNode q = Head;
while (q && (strcmp(q->word, NewWord) > 0))
q = q->next;
return q;
}
void main()
{
PNode Head = NULL, p, where;
FILE *in, *out;
char word[80];
int n;
in = fopen ( "input.dat", "r" );
while ( 1 ) {
n = fscanf ( in, "%s", word ); // читаем слово из файла
if ( n <= 0 ) break;
p = Find ( Head, word ); // ищем слово в списке
if ( p != NULL ) // если нашли слово,
p->count ++; // увеличить счетчик
else {
p = CreateNode ( word ); // создаем новый узел
where = FindPlace ( Head, word ); // ищем место
if ( ! where )
AddLast ( Head, p );
else AddBefore ( Head, where, p );
}
}
fclose(in);
out = fopen ( "output.dat", "w" );
p = Head;
while ( p ) { // проход по списку и вывод результатов
fprintf ( out, "%-20s\t%d\n", p->word, p->count );
p = p->next;
}
fclose(out);
}
Yandex
Объявления
25.05.2012, 09:45     Повтор слов в файле
Ответ Создать тему
Опции темы

Текущее время: 11:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru