• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

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

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

ChAoS

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

Partisan

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

Предлагаю завести динамический список,
в котором узлы состоят из пар: "слово" и "счётчик повторения слова"
Слово за словом, вычитываешь файл.
Если прочитанного слова нет в списке, то добавляешь его в список,
и счётчик для слова ставишь = 1.
Если слово уже есть в списке, то увеличиваешь счётчик на 1.
После прочтения последнего слова из файла в узлах списка
будут слова и количество их повторений в файле.
При выходе из программы не забудь удалить динамически выделенную память (если, конечно, она выделялась).
 
E

European

<!--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

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

ChAoS

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

Kmet

Well-known member
25.05.2006
904
8
BIT
0
Для: ChAoS
ыыы во новость=) Со всей ответсвенность заявляю катит.
 
C

ChAoS

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

Kmet

Well-known member
25.05.2006
904
8
BIT
0
хз что у тебя не работает, как ты запускаешь и чем ты компилируешь.
 
C

ChAoS

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

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

ChAoS

Вот написал прогу, которая считает количество симвоолов в каждой строке и всего в файле, а потом записывает эти данные в другой файл. Переделайте пожалуйста ее, чтоб делала тоже самое, но со словами. С меня пиво
#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

Well-known member
25.05.2006
904
8
BIT
0
<!--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 и разбираться с ключами компилятора
 
C

ChAoS

Вем еще раз спасибо за помощь! Прогу сдал :blink:
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!