#include <string>
#include <iostream>
#include <cstdlib>
//using namespace std;
int CompareString( const void * e1, const void * e2) {
std::string * s1 = (std::string * ) e1;
std::string * s2 = (std::string * ) e2;
if( *s1 < *s2 ) return -1;
else if( *s1 == *s2 ) return 0;
else if( *s1 > *s2 ) return 1;
}
int main() {
// string Array[4] = {"hehe","789","456","123"};
std::string *Array[4] = {
new std::string("hehe"),
new std::string("789"),
new std::string("456"),
new std::string("123")
};
qsort(Array,4,sizeof(std::string *),CompareString);
for( int i = 0;i < 4;++i )
std::cout << *Array[i] << std::endl;
return 0;
}
I2luY2x1ZGUgPHN0cmluZz4gICAgCiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGUgPGNzdGRsaWI+Ci8vdXNpbmcgbmFtZXNwYWNlIHN0ZDsKaW50IENvbXBhcmVTdHJpbmcoIGNvbnN0IHZvaWQgKiBlMSwgY29uc3Qgdm9pZCAqIGUyKSB7CiAgICBzdGQ6OnN0cmluZyAqIHMxID0gKHN0ZDo6c3RyaW5nICogKSBlMTsKICAgIHN0ZDo6c3RyaW5nICogczIgPSAoc3RkOjpzdHJpbmcgKiApIGUyOwogICAgaWYoICpzMSA8ICpzMiApICAgICByZXR1cm4gLTE7CiAgICBlbHNlIGlmKCAqczEgPT0gKnMyICkgcmV0dXJuIDA7CiAgICBlbHNlIGlmKCAqczEgPiAqczIgKSByZXR1cm4gMTsKfQoKaW50IG1haW4oKSB7Ci8vICAgIHN0cmluZyBBcnJheVs0XSA9IHsiaGVoZSIsIjc4OSIsIjQ1NiIsIjEyMyJ9OwogICAgc3RkOjpzdHJpbmcgKkFycmF5WzRdID0gewogICAgICAgIG5ldyBzdGQ6OnN0cmluZygiaGVoZSIpLAogICAgICAgIG5ldyBzdGQ6OnN0cmluZygiNzg5IiksCiAgICAgICAgbmV3IHN0ZDo6c3RyaW5nKCI0NTYiKSwKICAgICAgICBuZXcgc3RkOjpzdHJpbmcoIjEyMyIpCiAgICB9OwogICAgCiAgICBxc29ydChBcnJheSw0LHNpemVvZihzdGQ6OnN0cmluZyAqKSxDb21wYXJlU3RyaW5nKTsKICAgIGZvciggaW50IGkgPSAwO2kgPCA0OysraSApCiAgICAgICAgc3RkOjpjb3V0IDw8ICpBcnJheVtpXSA8PCBzdGQ6OmVuZGw7CiAgICByZXR1cm4gMDsKfQo=