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