在两个Struct阵列变量之间复制数据

时间:2014-05-09 15:56:54

标签: c variables struct char

我正在构建一个程序,其中包含用户名称以及出生日期并打印出最年轻的用户。我正在使用两个结构来执行此操作:

struct date   
{ int day;      
  int month;    
  int year;     
};         

struct person     
{ char name[80];
  struct date birth;
};

两个变量:

struct person p[5], final; 

用户被置于变量p中。然后我循环将第一个用户数据放入final,然后将其他所有人与final进行比较。如果是我打印出来的最年轻的用户,最后应该留下的数据是什么。

但是,当我尝试将p的名称放入final时,我得到了这个编译错误:

error: incompatible types when assigning to type ‘char[80]’ from type ‘char *’
    final.name = p[i].name;

有人可以帮助我!

感谢!!!

编辑:

我像这样复制数据(很遗憾早些时候错过了这个):

final.name = p[i].name;
final.birth.day = p[i].birth.day;
final.birth.month = p[i].birth.month;
final.birth.year = p[i].birth.year;

1 个答案:

答案 0 :(得分:0)

您无法分配到这样的数组。请改用strcpy

strcpy(final.name, p[i].name);

请记住加入string.h