Подсчитать количество вхождений в файл каждой из букв а, 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

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

6   голосов , оценка 3.833 из 5
Похожие ответы