我正在學習使用C的qsort()對字符數組0123h進行排序。 qsort()返回後,我打印出我的s
,但我只有不可讀的字符。我認爲我的compare()是正確的,因爲所有的qsort()需要用它來確定* a是否在before/equal/after * b之後。有沒有人有一個想法是什麼導致行printf("After: %s\n", s);
不工作?謝謝。在C中使用qsort()後得到奇怪的字符感到困惑0
int compare(const void * a, const void * b){
return *(char*)a - *(char*)b;
}
void doWork(char* s) {
printf("Before: %s\n", s);
qsort(s, strlen(s), sizeof(char *), compare);
printf("After: %s\n", s);
}
'的sizeof * s'將是另一種選擇,可能是有用的,如果代碼被後來適合'wchar_t'串 –
好一點,@ M.M補充說,作爲另一種選擇。 – paxdiablo