Вы не можете сделать h[26] = '\0';
- h имеет 26 проиндексированных элементов 0..25.Поскольку вы знаете длину h, вам не нужно ее завершать 0, просто выполните for (i=0; i < 26; ++i)
Кроме того, вы уверены, что whichLetter
всегда возвращает значение в диапазоне 0..25?Что он делает, если, например, встречает пробел?