我的结构是:
struct stored
{
char *dates; // 12/May/2010, 10/Jun/2010 etc..
};
// const
struct stored structs[] = {{"12/May/2010"}, {"12/May/2011"},
{"21/May/2009"}, {"13/May/2011"},
{"10/May/2011"}, {"19/May/2011"}};
我要做的是按stored.dates对struct“stored”进行排序。
qsort(structs, 9, sizeof(struct stored*), sortdates); // sortdates function
我不太确定那几天有什么好的方法来整理?把它们比作c字串?
最佳答案
我会使用如下方法将日期转换为数字:
year * 10000 + month * 100 + day;
然后做一个简单的数字比较(对于这个月,您需要将1月映射到1月,2月映射到2月,等等)。
如果要进行大量比较,可能需要在结构中缓存数值等效项。
关于c - 日期比较功能,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2466445/