Я хочу создать прическу члена структуры с переменной структуры коричневого цвета, но когда я пытаюсь скомпилировать, я получаю сообщение об ошибке «Символьная константа слишком длинная для своего типа» и «присвоение выражению с типом массива». Я был бы признателен за любую помощь в том, как с этим разобраться.
Я пробовал много других вариантов, таких как двойные кавычки вокруг коричневого, но это не работает.
struct person {
int age;
int weight;
int height;
char haircolour[50];
};
struct person john;
john.age = 27;
john.weight = 80;
john.height = 170;
john.haircolour = 'brown';
printf("Here are the personal details of john: \n\n");
printf("age: %d \n",john.age);
printf("weight: %dkg \n",john.weight);
printf("height: %dcm \n",john.height);
printf("hair colour: %s", john.haircolour);
strcpy(john.haircolour, "brown");
- хорошее начало.
В C строки записываются в двойных кавычках.
john.haircolour = "brown"; //As you said, you have tried this.
Фактическая проблема заключается в том, что вы пытаетесь скопировать строку с помощью оператора присваивания (=). Это не работает.
Чтобы скопировать, вы должны использовать strcpy
ИЛИ strncpy
(лучше), как показано ниже.
Прочтите о strcpy/strncpy отсюда и используйте их.