¿Cómo comparar la cadena C ++ usando qsort en c?

Intenté aprender la función qsort de la biblioteca cstdlib. Esto se proporciona incluso enc++. Pero no entiendo cómo usarlos para clasificarc++ instrumentos de cuerda. No estoy seguro de cuáles deberían ser los parámetros para elsizeof() operador y si micompare_str El código es correcto. He intentado este código:

    #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;
    }

Mi salida fue:

ppoq
tri
get
fine

No soy capaz de distinguir el error. Por favor ayuda.

Respuestas a la pregunta(6)

Su respuesta a la pregunta