Совсем недавно погрузился в изучение языка C. Дошел до массивов данных и захотел применить некоторые знания на практике, но произошел коллапс. Суть программы такова: пользователь должен вводить 5-ти буквенное слово, далее в этом слове заменяется 1 буква. Какую именно букву заменить и на какую букву должен вводить тоже пользователь. В первом коде не срабатывает строка swap = getchar(),т.е ввод не происходит и программа продолжает свою работу.
int main(void)
{
char name[5];
printf("Enter a five-digit word: ");
scanf("%s", &name);
unsigned char swap_let;
printf("Enter the letter you want to change: ");
swap = getchar();
int swap_deg;
printf("Enter the number of the letter you want to change: ");
scanf("%d", &swap_deg);
switch(swap_deg)
{
case 1:
name[0] = swap_let;
break;
case 2:
name[1] = swap_let;
break;
case 3:
name[2] = swap_let;
break;
case 4:
name[3] = swap_let;
break;
}
printf("New name is: %s", name);
getchar();
return 0;
}
Но если я строку swap = getchar() закину в начало функции main, как в этом коде, то всё работает как надо(только в не правильном порядке).
int main(void)
{
unsigned char swap_let;
printf("Enter the letter you want to change: ");
swap = getchar();
char name[5];
printf("Enter a five-digit word: ");
scanf("%s", &name);
int swap_deg;
printf("Enter the number of the letter you want to change: ");
scanf("%d", &swap_deg);
switch(swap_deg)
{
case 1:
name[0] = swap_let;
break;
case 2:
name[1] = swap_let;
break;
case 3:
name[2] = swap_let;
break;
case 4:
name[3] = swap_let;
break;
}
printf("New name is: %s", name);
getchar();
return 0;
}
Помогите масленку с проблемой, возможно я как-то туплю, просидел около 1.5 часа и так и не разобрался.