Структура, ошибка "assignment to expression with array type" - C (СИ)
Формулировка задачи:
Всем доброго времени суток!Я хотел бы у вас узнать в чем заключается проблема:У меня выдает ошибку при инициализации переменной jan:
main.c: In function 'main':
main.c:26:12: error: assignment to expression with array type
Так как я новичок,я не совсем понимаю как можно решить данную проблему самостоятельно.Надеюсь на ваше понимание и помощь. Заранее благодарен!Выдает ошибку:
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
struct year {
char jan[6];// Январь
char feb[7];// Февраль
char mar[4];// Март
char apr[6];// Апрель
char may[3];// Май
char jun[4];// Июнь
char jul[4];// Июль
char aug[6];// Август
char sep[8];//Сентябрь
char oct[7];//Октябрь
char nov[6];//Ноябрь
char dec[7];//Декабрь
};
main()
{
struct year month;
month.jan = "January";
}
И у меня выдает ошибку,даже тогда,когда я использую:
include... strcopy(month.jan,"January");
Я почти разобрался проблемой(надо было strcpy) и сразу же появилась другая :
когда я вывожу через printf("%c",month.jan), выводится символ "ф".Как исправить данную проблему?
Решение задачи: «Структура, ошибка "assignment to expression with array type"»
textual
Листинг программы
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
#include <string.h>
struct year {
char jan[10];// Январь
char feb[10];// Февраль
char mar[10];// Март
char apr[10];// Апрель
char may[10];// Май
char jun[10];// Июнь
char jul[10];// Июль
char aug[10];// Август
char sep[10];//Сентябрь
char oct[10];//Октябрь
char nov[10];//Ноябрь
char dec[10];//Декабрь
};
int main()
{
struct year month;
strcpy(month.jan,"January");//для хранения нужно 8 char как минимум
printf("%s",month.jan);
}
Объяснение кода листинга программы
- Подключение необходимых библиотек для работы с файлами, строками и структурой.
- Объявление структуры
yearс 12-ю полями, представляющими месяцы года. - Создание экземпляра структуры
monthв функции main(). - Использование функции strcpy() для копирования строки
Januaryв полеjanструктурыmonth. - Вывод содержимого поля
janна экран с помощью функции printf().