搜索

如何判断两结构体是否相等?

发布网友 发布时间:2022-04-24 13:45

我来回答

4个回答

热心网友 时间:2023-10-15 00:03

内置类型比较直接用==判断,字符串比较要用string.h里的函数strcmp(const char *str1,const char *str2)进行比较,
在你的程序中可以用调用的形式,通过传进参数进行比较,这样代码的可重用性强,也可以直接用if判断句比较,例如:
if(elem[0].num==elem[9].num&&strcmp(elem[0].name,elem[9].name)==0&&(elem[0].score==elem[9].score)){
/*这里是你要执行的代码*/
}
如果三者都为真则执行if里的语句体,希望我的回答对你有帮助!

热心网友 时间:2023-10-15 00:04

如果是C语言的话,由于c语言里没有运算符重载,只能对结构体的每个成员逐个进行比较,if(elem[0].num==elem[9].num && strcmp(elem[0].name,elem[9].name)==0&&(elem[0].score==elem[9].score))
如果是c++的话,就可以对==进行重载
bool operator==(const student& s1, const student& s2)
{
return ((s1.num==s2.num)&&strcmp(s1.name,s2.name)==0&&(s1.score==s2.score));
}

热心网友 时间:2023-10-15 00:04

//重载‘==’操作符。判断两结构是否相等
typedef struct student;
bool operator==(const student& s1, const student& s2)
{
return ((s1.num==s2.num)&&strcmp(s1.name,s2.name)==0&&(s1.score==s2.score));
}
//即可使用elem[0]==elem[9]

热心网友 时间:2023-10-15 00:05

if
{
elem[0].num=elem[9].num;
elem[0].name=elem[9].name;
elem[0].score=elem[9].score;
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top