我想用brown的struct变量创建一个结构成员haircolour,但是当我试图编译时,我得到了错误
“字符constatnt的类型太长”和“赋值到数组类型的表达式”我希望得到任何帮助来解决这个问题。
我试过很多其他的选择,比如在布朗的周围加上双引号,但这不起作用

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

最佳答案

在C语言中,字符串写在双引号之间。

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

实际问题是您正试图使用赋值(=)运算符复制字符串。那不管用。
要复制,您应该使用strcpystrncpy(更好)如下。
请阅读strcpy/strncpy from here并使用它们。

07-28 02:54
查看更多