как я могу инициализировать строку для моей структуры лица - PullRequest
1 голос
/ 07 апреля 2019

Я хочу создать цвет волос члена структуры с переменной struct коричневого цвета, но когда я пытаюсь скомпилировать, я получаю сообщение об ошибке «символ слишком длинный для его типа» и «назначение выражения с типом массива», я был бы признателен за любую помощьо том, как с этим разобраться.

Я пробовал много других вариантов, таких как двойные кавычки вокруг коричневого, но это не работает

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);

1 Ответ

2 голосов
/ 07 апреля 2019

В C строки записываются в двойных кавычках.

john.haircolour = "brown"; //As you said, you have tried this.

Фактическая проблема заключается в том, что вы пытаетесь скопировать строку с помощью оператора присваивания (=).Это не работает.

Чтобы скопировать, вы должны использовать strcpy ИЛИ strncpy (лучше.), Как показано ниже.

Пожалуйста, прочитайте о strcpy / strncpy здесь и используйте их.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...