Найти количество отдельных букв в каждой строке - 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
Помогите кто чем сможет... Заранее спасибо!!!

Решение задачи: «Найти количество отдельных букв в каждой строке»

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;
}

Объяснение кода листинга программы

В этом коде:

  1. Объявлены следующие переменные:
    • f - указатель на файл, который будет открыт для чтения.
    • alph - массив для подсчета количества букв в каждой строке.
    • i - переменная для перебора букв в алфавите.
    • cnt - переменная для подсчета количества строк.
    • ch - переменная для хранения очередного символа из файла.
  2. Открывается файл SUBOR.TXT для чтения с помощью fopen.
  3. Выводится шапка таблицы с буквами алфавита от 'A' до 'Z' с помощью printf.
  4. В цикле while считываются символы из файла до конца файла.
  5. Если считанный символ является новой строкой (\n), то выводится текущее значение переменной cnt и обнуляются все значения в массиве alph.
  6. Если считанный символ является буквой, то увеличивается значение в соответствующей ячейке массива alph.
  7. В конце программы возвращается 0, что означает успешное выполнение программы.

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


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

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

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