与我的家伙一起承担这是我的第二个stackoverflow问题,如果我做错了,请指出正确的方向
我有两个日期作为字符。
我打印出日期:
printf("%s - %s\n",tmpPtr->date, currentDate);
我有一个if语句始终执行
if(tmpPtr->date != currentDate) { // perhaps strcmp(), don't know
printf("Dates are not equal\n");
}
但这不可能是真的,因为这些是我的结果:
27/12/2015 - 27/12/2015
Dates are not equal
27/12/2015 - 27/12/2015
Dates are not equal
28/12/2015 - 27/12/2015
Dates are not equal
29/12/2015 - 28/12/2015
Dates are not equal
29/12/2015 - 29/12/2015
Dates are not equal
29/12/2015 - 29/12/2015
Dates are not equal
30/12/2015 - 29/12/2015
Dates are not equal
31/12/2015 - 30/12/2015
Dates are not equal
31/12/2015 - 31/12/2015
Dates are not equal
这是不对的,因为有些日期相同?
我是否正确比较了字符串?它只是比较内存分配还是某种东西?
答案 0 :(得分:4)
为了比较字符串,请使用strcmp()
,如下所示:
if (strcmp(tmpPtr->date,currentDate) != 0) {
printf("Dates are not equal\n");
}
答案 1 :(得分:0)
如果日期的格式相同,则使用strcmp
。否则解析它们并将一个字符串的年,月和日期与另一个字符串的相应字段进行比较。