在结构上我有我需要的升序排列的结构:排序根据日期和时间元素
typedef struct CallLogSearchDataStruct
{
char * date;
char * time;
char * bParty;
char * aParty;
float duration;
char * cleardownCause;
struct CallLogSearchOutboundStruct * outboundLegs;
int maxDataCol;
} callLogSearchDataStruct;
我需要梳理基础上按升序排列的日期和时间结构。日期和时间是按以下格式
日期:16/05/2011
时间:01:20:03
我需要按升序排列上述两个字段进行排序,我一直在寻找快速排序,但我想不出一种能够做到的方式。我以下面的方式调用函数。
qsort(callLogSearchData, dataRow, sizeof(callLogSearchDataStruct), sortCompare);
我的功能如下
int sortCompare(const void * a, const void * b)
{
const callLogSearchDataStruct *u1 = a;
const callLogSearchDataStruct *u2 = b;
if (u1->date < u2->date)
{
return -1;
}
else if (u1->date > u2->date)
{
return 1;
}
else
{
return 0;
}
}
当我做上面的代码,它似乎并没有螺丝结构,即布局时我出口排序,并改了结构的内容到文件中,所有内容都按照错误的列顺序出现,但没有问题,除非比较没有完成时排序顺序错误。
任何你不以[unix时间戳格式](http://en.wikipedia.org/wiki/Unix_time)存储你的日期和时间的原因?您将节省内存,您的比较功能将很简单。 – Michael
现在,您不会比较日期,而是指向日期的指针。 – Matthias
@Michael这主要是由于这是格式日期是需要导出到文件 – Boardy