我想排序數組聲明爲string *names1 = new string[1];
(數組的大小越來越大,添加更多項目)。Qsort不正確排序字符串數組
我把那裏的字符串。排序前陣的項目有: novot svobodovaa novakj6 3 vondraj1234
調用qsort(names1, size, sizeof (string), compare);
後,在比較中實現這樣
int compare(const void * a, const void * b) {
return (*(char*) a - *(char*) b);
}
在我的數組中的項目炒這樣 vondraj1234 novakj6 novot svobodovaa
是否有人知道,哪裏可以是不允許我按字母順序排列數組的錯誤?
爲什麼你不使用'std :: vector',因爲你使用C++編碼?你不應該把'char *'強制轉換爲'string *'。 – RedX 2013-03-18 13:35:15
使你的代碼更簡單: std :: vector a; std :: sort(a.begin(),a.end()); –
AnatolyS
2013-03-18 13:39:14
你的比較功能看起來很奇怪。如果你想按字母順序排序字符串,你可能需要使用strcmp函數嗎? – taocp 2013-03-18 13:46:26