如何将多个结构域复制到另一个?

时间:2016-11-14 10:31:44

标签: c

我正在学习结构及其操作,我如何将结构的特定字段复制到另一个?

示例

let counter++

如何将上面结构中的 rollno,name,marks 字段复制到下面? 我已经尝试了 memcpy 但它复制整个结构我只想复制上面结构中的特定字段有没有简单的方法呢? 谢谢你的帮助!!!

2 个答案:

答案 0 :(得分:6)

编写一个能够为您完成此任务的功能:

void copy_some_fields(studentmarks* dst, const student* src)
{
    assert(dst != NULL);
    assert(src != NULL);

    dst->rollno = src->rollno;
    dst->marks = src->marks;
    strcpy(dst->name, src->name);
}

您可以按如下方式使用它:

int main()
{
    student src; 
    // initialize src...

    studentmarks dst; 
    // initialize dst...

    copy_some_fields(&dst, &src);
}

答案 1 :(得分:1)

C支持直接复制相同类型的struct,例如s2 = s1(两个s1, s2都属于struct student类型。)

但是,您无法部分复制结构。因此,对于您的任务,您需要逐个字段地复制,例如:

studentmarks.rollno = student.rollno;