Ordenación por ASCII
Resuelto
Sabetodo
Mensajes publicados
127
Estado
Miembro
-
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:
Ej:
$>./a.out prueba "Esto es una prueba " reinstalar | cat -e
./a.out$
Esto es una prueba $
reinstalar$
prueba$
$>
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
-
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).