Статистика по файлу

  • Автор темы ChAoS
  • Дата начала
C

ChAoS

#1
Помогите пожалуйста решить задачу! Надо посчитать, сколько раз каждое слово встречается в текстовом файле. Не могу понять как это делается((
 
P

Partisan

#2
Помогите пожалуйста решить задачу! Надо посчитать, сколько раз каждое слово встречается в текстовом файле. Не могу понять как это делается((
Предлагаю завести динамический список,
в котором узлы состоят из пар: "слово" и "счётчик повторения слова"
Слово за словом, вычитываешь файл.
Если прочитанного слова нет в списке, то добавляешь его в список,
и счётчик для слова ставишь = 1.
Если слово уже есть в списке, то увеличиваешь счётчик на 1.
После прочтения последнего слова из файла в узлах списка
будут слова и количество их повторений в файле.
При выходе из программы не забудь удалить динамически выделенную память (если, конечно, она выделялась).
 
04.09.2006
2 566
3
#3
<!--QuoteBegin-Partisan+8:12:2006, 00:06 -->
<span class="vbquote">(Partisan @ 8:12:2006, 00:06 )</span><!--QuoteEBegin-->Предлагаю завести динамический список,
в котором узлы состоят из пар: "слово" и "счётчик повторения слова"
[snapback]50184" rel="nofollow" target="_blank[/snapback]​
[/quote]
Тогда уж лучше воспользоваться std::map
 
C

ChAoS

#4
Спасибо большое! Попытаюсь сделать так.
Кчстати, может тут можно что-нибудь замутить используя функцию strtok?
 
C

ChAoS

#5
На счет std::map: данная программа должна быть консольным приложением Linux, а там , на сколько я знаю, С++ не катит. Исправьте, пожалуйста, если я не прав
 

Kmet

Java Team
25.05.2006
1 036
8
#6
Для: ChAoS
ыыы во новость=) Со всей ответсвенность заявляю катит.
 
C

ChAoS

#7
Для: Kmet
Может тогда объяснишь, почему не работают элементарные cin и cout?
 

Kmet

Java Team
25.05.2006
1 036
8
#8
хз что у тебя не работает, как ты запускаешь и чем ты компилируешь.
 
C

ChAoS

#10
Для: Kmet
В универе заставляют писать проги в каком-то долбаном редакторе Kate. Не понимаю, кому это счас надо. Так в этом Кейте только С работает.

Для: Partisan
Спасибо! Попробую разобраться.
 
C

ChAoS

#11
Вот написал прогу, которая считает количество симвоолов в каждой строке и всего в файле, а потом записывает эти данные в другой файл. Переделайте пожалуйста ее, чтоб делала тоже самое, но со словами. С меня пиво
#include<stdio.h>
#include<stdlib.h>
#include<stdlib.h>
main(int argc, char* argv[])
{
FILE *inf, *wrt;
char c;
unsigned int i=0, count=0, cc=0;
inf=fopen(argv[1],"r");
wrt=fopen(argv[2],"w");
if(inf==NULL || wrt==NULL) {
printf("Íåâîçìîæíî îòêðûòü ôàéë %s\n", argv[1]);
exit(1);
}
while(!feof(inf))
{
c=fgetc(inf);
while(c!=10 && !feof(inf))
{
c=fgetc(inf);
count++;
cc++;
}
if(count!=0) {
i++;
fprintf(wrt,"%d. ",i);
fprintf(wrt,"%d\n",count);
}
}
fprintf(wrt,"Itogo: %u strok, %u simvolov\n", i, cc);
fclose(inf);
fclose(wrt);
}
 

Kmet

Java Team
25.05.2006
1 036
8
#12
<!--QuoteBegin-ChAoS+10:12:2006, 01:36 -->
<span class="vbquote">(ChAoS @ 10:12:2006, 01:36 )</span><!--QuoteEBegin-->В универе заставляют писать проги в каком-то долбаном редакторе Kate. Не понимаю, кому это счас надо. Так в этом Кейте только С работает.
[snapback]50299" rel="nofollow" target="_blank[/snapback]​
[/quote]

Обычно под никсы программируется связкой редактор(vim, emacs,...), make, gcc. так информация о редакторе мне ничего не сказала. Скорее всего тебе надо править makefile и разбираться с ключами компилятора