Вывод количество значений встречающихся букв английского алфавита в строке - C (СИ)
Формулировка задачи:
При исполнении программы при безотносительно того, какие символы даны на вводе, массив символов и массив количества встречающихся чисел сохраняют в себе одинаковые числовые значения. Прошу помочь разобраться с данной ситуацией.
#include <stdio.h>
#define ALPH 26 // количество букв в английском алфавите
int main()
{
int i, c;
char m[ALPH];//массив в который будет вложен алфавит
int k[ALPH]; //массив в котором будут записаны значения количества встречающихся символов;
m[0] = 'a'; m[1] = 'b'; m[2] = 'c'; m[3] = 'd'; m[4] = 'e'; m[5] = 'f'; m[6] = 'g';
m[7] = 'h'; m[8] = 'i'; m[9] = 'j'; m[10] = 'k'; m[11] = 'l'; m[12] = 'm'; m[13] = 'n';
m[14] = 'o'; m[15] = 'p'; m[16] = 'q'; m[17] = 'r'; m[18] = 's'; m[19] = 't'; m[20] = 'u';
m[21] = 'v'; m[22] = 'w'; m[23] = 'x'; m[24] = 'y'; m[25] = 'z';
for (i = 0; i < ALPH; ++i) //инициализация массива, считающего количество символов
{ k[i] = 0;
}
i = 0;
while ((c = getchar()) != '\n') // считываем символы до конца строки
{ if(c != m[i]) // если значение символа не равно значению итого элемента массива
{ i = 0; // обнуляем счетчик для начала проверки с первого элемента массива
while(m[i] != c) // до тех пор, пока значение символа не равно значению массива
{ ++i; // перебираем элементы массива
}
}
else
{ ++k[i]; // в ином случае прибавляем значение соответствующему элементу массива значений
}
}
for (i = 0; i < ALPH; ++i) // выводим массив со значением
{ printf(" %d", m[i]);
}
putchar('\n');
for(i = 0; i < ALPH; ++i) // выводим массив с количеством встречающихся значений
{ printf(" %s", m[i]);
}
}Решение задачи: «Вывод количество значений встречающихся букв английского алфавита в строке»
textual
Листинг программы
#include <ctype.h> isalpha(c)
Объяснение кода листинга программы
- В начале кода подключается библиотека
, которая содержит функции для работы со строками и символами. - Функция isalpha(c) проверяет, является ли символ 'c' буквой английского алфавита. Возвращает 1, если символ является буквой, и 0 в противном случае.