将两个日期作为C中的char数组进行比较

时间:2016-04-01 13:09:57

标签: c string comparison

与我的家伙一起承担这是我的第二个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

这是不对的,因为有些日期相同?

我是否正确比较了字符串?它只是比较内存分配还是某种东西?

2 个答案:

答案 0 :(得分:4)

为了比较字符串,请使用strcmp(),如下所示:

if (strcmp(tmpPtr->date,currentDate) != 0) {      
    printf("Dates are not equal\n");
}

答案 1 :(得分:0)

如果日期的格式相同,则使用strcmp。否则解析它们并将一个字符串的年,月和日期与另一个字符串的相应字段进行比较。