Структура, ошибка "assignment to expression with array type" - C (СИ)

Узнай цену своей работы

Формулировка задачи:

Всем доброго времени суток!Я хотел бы у вас узнать в чем заключается проблема:
Листинг программы
  1. struct year {
  2. char jan[6];// Январь
  3. char feb[7];// Февраль
  4. char mar[4];// Март
  5. char apr[6];// Апрель
  6. char may[3];// Май
  7. char jun[4];// Июнь
  8. char jul[4];// Июль
  9. char aug[6];// Август
  10. char sep[8];//Сентябрь
  11. char oct[7];//Октябрь
  12. char nov[6];//Ноябрь
  13. char dec[7];//Декабрь
  14. };
  15. main()
  16. {
  17. struct year month;
  18. month.jan = "January";
  19. }
У меня выдает ошибку при инициализации переменной jan: main.c: In function 'main': main.c:26:12: error: assignment to expression with array type Так как я новичок,я не совсем понимаю как можно решить данную проблему самостоятельно.Надеюсь на ваше понимание и помощь. Заранее благодарен!
И у меня выдает ошибку,даже тогда,когда я использую:
Листинг программы
  1. include
  2. ...
  3. strcopy(month.jan,"January");
Выдает ошибку: C:\Users\7349~1\AppData\Local\Temp\cculMbo1.o:main.c.text+0x32): undefined reference to `strcopy' collect2.exe: error: ld returned 1 exit status
Я почти разобрался проблемой(надо было strcpy) и сразу же появилась другая : когда я вывожу через printf("%c",month.jan), выводится символ "ф".Как исправить данную проблему?

Решение задачи: «Структура, ошибка "assignment to expression with array type"»

textual
Листинг программы
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <locale.h>
  4. #include <string.h>
  5.  
  6. struct year {
  7.     char jan[10];// Январь
  8.     char feb[10];// Февраль
  9.     char mar[10];// Март
  10.     char apr[10];// Апрель
  11.     char may[10];// Май
  12.     char jun[10];// Июнь
  13.     char jul[10];// Июль
  14.     char aug[10];// Август
  15.     char sep[10];//Сентябрь
  16.     char oct[10];//Октябрь
  17.     char nov[10];//Ноябрь
  18.     char dec[10];//Декабрь
  19. };
  20. int main()
  21. {
  22.     struct year month;
  23.     strcpy(month.jan,"January");//для хранения нужно 8 char как минимум
  24.     printf("%s",month.jan);
  25. }

Объяснение кода листинга программы

  1. Подключение необходимых библиотек для работы с файлами, строками и структурой.
  2. Объявление структуры year с 12-ю полями, представляющими месяцы года.
  3. Создание экземпляра структуры month в функции main().
  4. Использование функции strcpy() для копирования строки January в поле jan структуры month.
  5. Вывод содержимого поля jan на экран с помощью функции printf().

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

8   голосов , оценка 4 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы