关于qsort字符串数组排序的问题
编译通过,运行后排序不正确,求解救代码:
程序代码:
#include <iostream> #include <string> int cmp(const void *a, const void *b); using namespace std; int main() { int b; cin >> b;//输入字符串个数 string a[1000]; for (int n = 0; n < b; n++){ cin >> a[n]; } qsort(a, b, sizeof(a[0]), cmp); for (int n = 0; n < b; n++){ cout << a[n] << endl; } return 0; } int cmp(const void *a, const void *b) { return (strcmp((char *)a, (char *)b)); }
运行输入:
6
asdfghjk
aaaaa
zxcvbn
zaaaaa
bczzzz
bbbbbb
结果:
bbbbbb
zxcvbn
aaaaa
zaaaaa
asdfghjk
bczzzz