我試圖學習c庫stdlib
的qsort函數。即使在c++
中也提供了這個功能。但我不明白如何使用它們來排序c++
字符串。我不確定sizeof()
運營商的參數應該是什麼,以及我的compare_str
代碼是否正確。我想這樣的代碼:如何比較在c中使用qsort的C++字符串?
#include<iostream>
#include<cstdlib>
using namespace std;
#include<string>
int compare_str(const void *a, const void *b){
string obj = (const char*)a;
string obj1 = (const char*)b;
return obj.compare(obj1);
}
int main(){
string obj[4] = {"fine", "ppoq", "tri", "get"};
qsort(obj, 4, sizeof(obj[0].length()), compare_str);
for(int i=0; i<4; i++)
cout<<obj[i]<<endl;
return 0;
}
我的產量爲:
ppoq
tri
get
fine
我不能夠做出來的錯誤。請幫忙。
我很懷疑這部分 「的sizeof(OBJ [0]。長度())」 – drescherjm