Посчитать количество слов, которые начинаются с одной буквы - C (СИ)

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

Доброго времени суток. Прошу помочь в решении следующих задач: Написать программу ,считывающую строку текста и печатающую таблицу,показывающую ,сколько раз в тексте встречаются слова ,начинающиеся с одной и той же буквы.
#include "stdafx.h"
#include "string.h"
 
int main ()
{
  int k = 0;
  char str[] ="Show unnamed handles and mappings";
  char *p;
  for (p = strtok(str," "); p ; p = strtok (0," "))
 
 
  
 
  return 0;
}
Не могу понять , как составить цикл по проверке слов , начинающихся на одну и ту же букву. Прошу обойтись без сообщений в духе "почитай про такую-то функцию и поймешь". Просто на данный момент ситуация такая , что решить данные задачи сам я не в состоянии. Надеюсь на вашу поддержку и понимание. P.S.Решить надо на Си. (желательно без применения с++)

Код к задаче: «Посчитать количество слов, которые начинаются с одной буквы - C (СИ)»

textual
#include "stdafx.h"
#include <string.h>
#include <conio.h>
#include <ctype.h>
 
int main ()
{
    char str[] ="Abf vde avfg cvg a", *p = NULL;
    size_t map[127] = {0}, i, mapSize = sizeof(map) / sizeof(*map);
    for (p = strtok(str, " "); p; p = strtok(NULL, " "))
    {
        ++map[tolower(*p)];
    }
    for(i = 0; i < mapSize; ++i)
    {
        if(isalpha(i) && map[i])
        {
            printf("%c - %u\n", i, map[i]);
        }
    }
    _getch();
    return 0;
}

12   голосов, оценка 4.250 из 5


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