Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.02.2012, 23:55   #1
m9co038
 
Регистрация: 18.02.2012
Сообщений: 8
По умолчанию Частота вхождения символов

Господа, прошу вашей помощи на С или С++. Задача такая:
Нужно прочитать файл и вычислить сколько раз встречается каждый символ из расширенного набора ASCII (от 0 до 255). Спасибо заранее.
m9co038 вне форума Ответить с цитированием
Старый 19.02.2012, 09:41   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ну а в чем проблема? В неумении читать файл, или неумении определить кол-во вхождения символа?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.02.2012, 11:27   #3
m9co038
 
Регистрация: 18.02.2012
Сообщений: 8
По умолчанию

в неумении определить кол-во вхождений символа
m9co038 вне форума Ответить с цитированием
Старый 19.02.2012, 12:01   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Не вопрос. Покажи как вводишь а я покажу как определить сколько каждый символ раз встречается в строке
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 19.02.2012, 12:25   #5
m9co038
 
Регистрация: 18.02.2012
Сообщений: 8
По умолчанию

Код:
#include <stdio.h>
#include <stdlib.h>

int main()
{
char filename[32];
unsigned long FileLen = 0;
unsigned int i,j;
puts("enter file name:");
gets(filename);
FILE *f1 = fopen(filename,"rb");
FILE *f2 = fopen("txt10.tab","w+");
if (f1==0)
{
        perror("error");
        system("pause");
        exit(1);
}
else
{
fseek (f1, 0, 2);               // получаем количество
FileLen = ftell(f1);            // байт в файле
rewind(f1);
printf("%s", "File name: ");
printf("%s\n", filename);
printf("%s %d\n", "File length: ", FileLen);
fprintf(f2,"%s\n",filename);
fprintf(f2,"%d\n\n",FileLen);
}                         
system("pause");
fclose(f1);
fclose(f2);
return 0;
}
m9co038 вне форума Ответить с цитированием
Старый 19.02.2012, 12:57   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Ок.
Вот функция котрая показывает кол-во вхождений символа
Код:
unsigned short int a[255]={0};
void kolvoter(FILE *f){
	for(unsigned short int c=fgetc(f);!feof(f);c=fgetc(f)){ 
		a[c]++;
	}
	
	for(unsigned short int i=0;i<255;i++) {
		 if(a[i]) {
			 printf("%c - %d\n",(char)i, a[i]);
		 }
	}
	return;
}
Прикрутишь ее в своем коде скажем после rewind()
I'm learning to live...

Последний раз редактировалось Stilet; 19.02.2012 в 12:59.
Stilet вне форума Ответить с цитированием
Старый 19.02.2012, 13:49   #7
m9co038
 
Регистрация: 18.02.2012
Сообщений: 8
По умолчанию

Stilet, спасибо большое, очень помог

Последний раз редактировалось m9co038; 19.02.2012 в 15:07.
m9co038 вне форума Ответить с цитированием
Старый 19.02.2012, 15:13   #8
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пожалуйста
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проверка вхождения *cash* Microsoft Office Excel 4 07.01.2012 23:55
Частота WAV Voxa7 Помощь студентам 4 18.03.2011 12:55
Частота слов ЗЛОбнаЯ Помощь студентам 1 21.12.2010 00:28
разъясните терминалогию,референсная частота,частота чипа,памяти,шейдерного блока Jesus2.0 Компьютерное железо 5 04.05.2009 07:54
Частота и количество valko12 Microsoft Office Excel 14 21.05.2008 11:41