這是我做了我的比較函數傳遞給快速排序():的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