Похоже, в дополнение к совпадениям с одним символом, вы также хотите сопоставить строку.Итак, вы пытаетесь прочитать строку как ввод.Проиллюстрирована простая обработка ошибок, вам может потребоваться что-то более причудливое.
if (scanf("%4s", dnevi) != 1) {
strcpy(dnevi, "?"); /* simple error handling */
}
scanf("%*[^\n]"); /* get the rest of the input */
Однако, как говорится в сообщении об ошибке, вам необходимо указать целое число switch
.Вы можете сделать это с первым персонажем.
switch(dnevi[0])
Однако теперь вам приходится иметь дело с тем фактом, что у вас есть два варианта P
и два варианта S
.Обращайтесь с этим в особых случаях в этих конкретных случаях.Строковые литералы окружены "
.
case 'P':
if (dnevi[1] == '\0')
printf("To je ponedeljek");
else if (strcmp(dnevi, "Pet") == 0)
printf("To je petek");
else
printf("Vnos je bil napacen!");
break;
...
case 'S':
if (dnevi[1] == '\0')
printf("To je sreda");
else if (strcmp(dnevi, "Sob") == 0)
printf("To je sobota");
else
printf("Vnos je bil napacen!");
break;
...
default:
printf("Vnos je bil napacen!");