我如何为我的人员结构初始化字符串

时间:2019-04-07 03:07:38

标签: c string struct

我想使用struct变量的brown创建一个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 个答案:

答案 0 :(得分:2)

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

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

实际的问题是您试图使用赋值(=)运算符复制字符串。那是行不通的。

要复制,您应该使用strcpystrncpy(更好),如下所示。

请阅读并使用strcpy/strncpy from here