【发布时间】:2020-12-16 22:33:39
【问题描述】:
我应该在不使用 strcmp() 的情况下将一个结构与另一个结构进行比较。但是每次双方的 firstName 相同时,它都不会进入 if 函数。我知道该函数在 printf 中获取名称 bc 我清楚地看到了名称。
typedef struct{
char firstName[MAXC];
char familyName[MAXC];
char gender;
} TPerson;
....
int comparePeopleByFirstName(TPerson *a, TPerson *b){
if(a->firstName == b->firstName){
if(a->familyName < b->familyName){
return 1;
} else if (a->familyName > b->familyName){
return -1;
}
}else if(a->firstName < b->firstName){
return 1;
} else if (a->firstName > b->firstName){
return -1;
}
return 0;
}
【问题讨论】:
-
如果不能使用
strcmp,则需要比较字符串中的每个字符。char *上的==正在比较指针/地址而不是字符串字符。