Подсчитать количество вхождений в файл каждой из букв а, b, c - C (СИ)
Формулировка задачи:
Дано символьный файл. Подсчитать количество вхождений в файл каждой из букв а, b, c, d, e, f и вывести результат отдельными строками.
Заранее спасибо!!!!
Заранее спасибо!!!
Вот написал код в котором выводит на екран буквы a,b,c,d,e,f. Но мне нужно Подсчитать количество вхождений в файл каждой из букв а, b, c, d, e, f и вывести результат отдельными строками. Я понял ,что сдесь нужно ставить счётчик ,только не могу понять как?Помогите пожалуйста.
#include "stdafx.h"
#include <stdio.h>
#include "stdlib.h"
#define yourfile "yourfilename.txt"
int main(void)
{
FILE *fp;
fp=fopen(yourfile,"r");
if(!fp)
{printf("ERROR FILE NOT OPEN!");
exit(1);
}
while (!feof(fp))
{ char ch;
ch=getc(fp);
if (ch - 'a' <= 'f'-'a' )
{
printf(" %c",ch);
}
}
fclose(fp);
return 0;
}
Что никто не может помочь?
А как сделать в программе , что б мне выводило только например а-3 ,е-7 ?
#include "stdafx.h"
#include <stdio.h>
#include "stdlib.h"
#define yourfile "yourfilename.txt"
int main(void)
{int i;
FILE *fp;
fp=fopen(yourfile,"r");
int count [6];
for( i=0;i<6;i++)
count[i]=0;
if(!fp)
{printf("ERROR FILE NOT OPEN!");
exit(1);
}
while (!feof(fp)) // Пока не конец файла
{ char ch;
ch=getc(fp); // Чтение символа ch из файла pf
{ if (ch - 'a' <= 'f'-'a' )//Принадлежит ли ch отрезку a-f
count[ch-'a']++ ;
printf("%c %d\n",ch,count[ch - 'a']);
}
}
fclose(fp);
return 0;
}Решение задачи: «Подсчитать количество вхождений в файл каждой из букв а, b, c»
textual
Листинг программы
while ((c = fgetc(fp)) != EOF) // пока считали символ в переменную с и он оказался не символом конца файла
* * * * if (c >= 'a' && c <= 'f') // если символ лежит в диапазоне [a, f]
* * * * * * all[c - '0' - 49]++; // в массиве all с индексом, равным значению этой переменной в коде ASCII - 49 (начиная с 49 символа идут малые латинские буквы)
for (i=0; i < SIZE; i++) // от начала до конца массива
* * * * printf("%c-%d\n", i + 49 + '0', all[i]); // выводим содержимое на экран. i + 49 - номер символа по таблице ASCII. Добавление '0' преобразует int в char