Вы пытаетесь сохранить строки в char
.Однако строка является массивом char
.Вместо этого:
char day[7];
Вам нужно что-то вроде:
char day[7][16];
Теперь у вас есть 16 char
, чтобы поместиться в будний день, и у вас есть это семь раз, один дляежедневно.Кроме того, ваша печать неверна.Для печати строк вам нужно %s
, а не %c
.%c
только для одного символа:
printf("Day %d is %s\n", i + 1, mon.day[i]);
Другой способ сделать это состоит в том, чтобы иметь массив char*
вместо char
и хранить только адрес строк;чем копировать строки:
char *day[7];
Затем сохраните адреса следующим образом:
mon.day[0] = "Sunday";
mon.day[1] = "Monday";
mon.day[2] = "Tuesday";
...
И напечатайте его так же, с %s
.