Тип, указанный в scanf
, неверен, вы передаете адрес символу, но спецификатор формата %s
ожидает строку, которая вызовет неопределенное поведение.Я предполагаю, что это влияет на остальную часть вашего кода.
Также тип secretword
кажется немного странным, почему бы не просто массив или строка?
char secretWord[] = "HANGMAN";
scanf
не лучший выбор для чтения с клавиатуры, вместо этого используйте fgets()
и уберите окончание \ n или как в вашем случае, просто прочитайте первый символ.Тогда вам не нужно иметь дело с тем, что scanf оставляет символы в буфере клавиатуры.
while (... )
{
printf("Guess a single letter: ");
char buffer[128];
if (fgets(buffer,sizeof(buffer),stdin) != NULL)
{
for (int i = 0; i < strlen(secretWord); ++i)
{
if (buffer[0] == secretWord[i])
{
...
}
}