Найти количество отдельных букв в каждой строке - C (СИ)

Формулировка задачи:

Помогите пожалуйста дописать код, я имею первую и вторую строчку, но не знаю как дописать третию Вот что мне нужно... Написать программу, которая находит количество отдельных букв в каждой строке файла. Заходя на программу одна линия содержит имя файла. На выходе получается гистограмма письма, написанном в таблице, где первая строка будет содержать все буквы алфавита аккуратно разделены. Каждая строка будет содержать номер строки и всегда под буквами выровнены количество вхождений букв в каждом файле строки. Цифры указывают на возникновение так как большинство двузначное число предшествует единое пространство. Все линии производства будут завершены в конце строки. Вот что должно выйтии... ВВОД: SUBOR.TXT Текстовый документ SUBOR.TXT: Toto je ukazkovy subor. V subore su pismena. ВЫВОД: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 1 1 1 0 0 1 0 0 0 0 1 2 0 0 0 4 0 0 1 1 2 2 1 0 0 1 1 2 1 1 0 0 2 0 0 0 1 0 0 0 1 1 1 1 0 1 3 0 2 1 0 0 0 0\ Это то что у меня есть...
C
#include <stdio.h>
#include<stdlib.h>
#include<ctype.h>
#define SUBOR "SUBOR.TXT"
#define N 'Z' - 'A' + 1
 
int main()
{
  FILE *fr;
  int c,hist[N],i;
  for (c='A';c<='Z';c++)
  printf("%c ",c);
  printf("\n");
 
 
  if ((fr = fopen("SUBOR.TXT", "r")) == NULL) {
    printf("SUBOR.TXT sa nepodarilo otvorit\n");
    return 1; } 
  
 
    //for(j=1;j<=26;j++){
  for(i=0;i<=N;i++){
    hist[i] = 0;}
  while ((c = toupper(getc(fr))) !='\n') 
  {
   
      if(c >= 'A' && c <= 'Z') 
        hist[c - 'A']++;
  }
  
  for (i=0; i<N; i++) {
     
        printf("%d ",hist[i]);
    
  }
 
  //while (getchar() != '\n')
    
    
if (fclose(fr) == EOF) {
    printf("SUBOR.TXT sa nepodarilo uzavriet\n");
    return 1;     
  }
 
 
  return 0;
}
Помогите кто чем сможет... Заранее спасибо!!!

Код к задаче: «Найти количество отдельных букв в каждой строке - C (СИ)»

textual
#include <stdio.h>
#include <ctype.h>
#include <assert.h>
 
int main() {
    FILE* f;
    unsigned alph['z' - 'a' + 1] = { 0 };
    unsigned i, cnt = 0;
    int ch;
 
    assert((f = fopen("SUBOR.TXT", "r")) != NULL);
 
    printf("  ");
    for (i = 'A'; i <= 'Z'; ++i) {
        printf("%c ", i);
    }
    printf("\n");
 
    while ((ch = fgetc(f)) != EOF) {
        if (ch == '\n') {
            printf("%u ", ++cnt);
            for (i = 'a'; i <= 'z'; ++i) {
                printf("%d ", alph[i - 'a']);
                alph[i - 'a'] = 0;
            }
            printf("\n");
        }
        else if (isalpha(ch)) {
            alph[tolower(ch) - 'a']++;
        }
    }
 
    return 0;
}

10   голосов, оценка 4.000 из 5


СОХРАНИТЬ ССЫЛКУ
Похожие ответы