这是我做了我的比较函数传递给快速排序():的qsort()的作品在一个方向,而不是其他
int charCompare(const void* ptr1, const void* ptr2)
{
char c1 = *(char*)ptr1;
char c2 = *(char*)ptr2;
return c1 - c2;
}
而这正是实现:
char buffer[SIZE];
/*
* buffer filled here
*/
qsort(buffer, sizeof(buffer)/sizeof(char), sizeof(char), charCompare);
printf("%s", buffer);
没有打印。我很确定这是因为空字符在常规字符之前出现,因为它以另一种方式工作(如果我从charCompare返回c2-c1)。但是我将如何去除掉空字符,因为我希望它是从a到z的顺序,而不是其他方式?
'sizeof(char)'是**总是** 1! – paxdiablo 2011-05-17 03:37:16