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

问题描述 投票:1回答:1

我想创建一个结构成员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 string struct
1个回答
2
投票

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

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

实际问题是您尝试使用赋值(=)运算符复制字符串。这不起作用。

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

请阅读有关strcpy/strncpy from here的信息并使用它们。

© www.soinside.com 2019 - 2024. All rights reserved.