Ordenación por ASCII

Resuelto
Sabetodo Mensajes publicados 127 Estado Miembro -  
Sabetodo Mensajes publicados 127 Estado Miembro -
Hola,
hola estoy tratando de hacer una clasificación por orden ASCII de los argumentos recibidos en la línea de comandos de Unix (Ubuntu) pero no puedo. Por favor, ayúdenme chicos.
Aquí está mi código:
int main( int argc, char **argv) { int i,j; char* temp; for(i=0; i<argc -1 ; i++) { for(j = i+1 ; j<argc; j++) { if(argv[ i ] > argv[ j ]) { temp = argv[ i ]; argv[i] = argv[ j ]; argv[j] = temp; } } } for(i=0; i<argc; i++) { my_putstr(argv[i]); my_putstr("\n"); } return(0); } 


Ej:
$>./a.out prueba "Esto es una prueba " reinstalar | cat -e
./a.out$
Esto es una prueba $
reinstalar$
prueba$
$>
Configuración: Linux Firefox 1.0.7

4 respuestas

  1. toto
     
    Hola

    Hay (al menos) un problema en tu comparación:
    argv[ i ] > argv[ j ]

    argv[i] y argv[j] son punteros, estás comparando los valores de los punteros y no las cadenas apuntadas.
    Para comparar las cadenas apuntadas, hay que utilizar la función strcmp() (cita de memoria, verifica los detalles en tu manual de C).
    0