无法使用c中的结构设置名称(字符数组)

时间:2015-05-04 15:42:49

标签: c struct

struct Student {
char name[10];
};


void set(struct student *s,const char *n)
{
s->name=n;    // this line is showing error(incompatible types in assignment)
}


int main()
{
struct Student stud;
char name[]="abc";
set(&stud,name);
}

这一行

s->name=n;

显示不兼容分配的编译时错误。 如何将使用函数传递的名称赋值给结构变量。

2 个答案:

答案 0 :(得分:3)

您需要使用strcpy来复制字符串,所以

strcpy(s->name,n); 

并改变

void set(struct student *s,const char *n)

void set(struct Student *s,const char *n)
                ^
                capital S

答案 1 :(得分:2)

s->name是一个数组,它不能是=的左操作数。请改用strcpy