Вывод номеров встречающихся букв во входном потоке - C (СИ)

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

В теме книги обсуждались указатели, но у меня они употреблены номинально и можно было обойтись без них. Можно ли более простой способ для решения данной задачи найти с применением указателей?
#include <stdio.h>
 
void sign(char *a);
 
int main(void)
{
    char ch;
    while((ch = getchar()) != EOF)
    {
        sign(&ch);
    }
return 0;
}
 
void sign(char *a)
{   
    int i = 0;
    char m[] = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz";
    int k[] = {1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,14,14,15,15,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26};
    if(*a >= 'A' && *a <= 'Z' || *a >= 'a' && *a <='z')
    {
        while(*a != m[i])
        {
            ++i;
        }
        printf("%c - %d буква в алфавите\n", m[i], k[i]);
 
    }
    i = 0;
}

Код к задаче: «Вывод номеров встречающихся букв во входном потоке - C (СИ)»

textual
//gcc 5.4.0
 
#include  <stdio.h>
 
int main(void)
{
    for (int i='a'; i<'z'; i++)
        printf("%c = %d\n", i, i);
    return 0;
}

15   голосов, оценка 4.067 из 5


СОХРАНИТЬ ССЫЛКУ