Частота строки в файле C
Эта программа на языке C подсчитывает количество вхождений в текстовом файле всех искомых символов.Пример:
Текстовый файл содержит текст "Я программист".
Символы, которые вы ищете: j, s, p, e.
Количество вхождений:
j : 1
s: 1
u: 3
E: 2
#include < stdio.h>
#include < stdlib.h>
void rech_caracteres(char characters[],int size)
{
//открыть файл в режиме чтения
FILE *file = fopen("C:/test.txt","r");
char c;
//массив, который сохраняет repeats
int repeat[size];
//инициализируем значение 0
for(int i = 0 ; i < size; i++)
repeat[i]=0;
//если файл существует
if(file)
{
//до тех пор, пока это не конец файла
//читаем символ
while((c=(char)getc(file))!=EOF)
{
//Прочитанный символ сравнивается с
//все искомые символы
for(int i = 0 ; i < size; i++)
{
//если равно, increment
//счетчик, связанный с символом
if(c==characters[i])
repeat[i]++;
}
}
//закрыть файл
fclose(файл);
//display
printf("Количество повторений:\n");
for(int i = 0 ; i < size; i++)
printf("\t%c : %d\n",characters[i],repeat[i]);
}
else
printf("\aERROR: Невозможно открыть файл: %s", file);
}
int main()
{
char string[]="программист";
// sizeof(string)-1: размер массива
// (-1, чтобы не считать '\0')
// '\0' указывает конец массива
rech_caracteres(string,sizeof(string)-1);
system("пауза");
}