Найти количество отдельных букв в каждой строке - 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; }
Объяснение кода листинга программы
В этом коде:
- Объявлены следующие переменные:
f
- указатель на файл, который будет открыт для чтения.alph
- массив для подсчета количества букв в каждой строке.i
- переменная для перебора букв в алфавите.cnt
- переменная для подсчета количества строк.ch
- переменная для хранения очередного символа из файла.
- Открывается файл
SUBOR.TXT
для чтения с помощьюfopen
. - Выводится шапка таблицы с буквами алфавита от 'A' до 'Z' с помощью
printf
. - В цикле
while
считываются символы из файла до конца файла. - Если считанный символ является новой строкой (
\n
), то выводится текущее значение переменнойcnt
и обнуляются все значения в массивеalph
. - Если считанный символ является буквой, то увеличивается значение в соответствующей ячейке массива
alph
. - В конце программы возвращается 0, что означает успешное выполнение программы.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д