26/08/2012, 16:09
|
| | Fecha de Ingreso: julio-2011
Mensajes: 21
Antigüedad: 13 años, 5 meses Puntos: 0 | |
Ordenar alfabeticamente Hola, estoy intentando hacer un programa que tengo punteros a distintas palabras y las quiero ordenar alfabeticamente (no importa si de menor a mayor o de mayor a menor, y hace ya 4 horas que estoy dandole vueltas y no logro hacerlo, alguien puede ayudarme? si alguien tiene algun codigo o algo estria genial. Yo les dejo el mio por las dudas, pero croe que no hace nada NOTA: las valores se mandan por funcion.
void ordenar(char **palabras, int total_palabras)
{
char *texto[3], *aux;
int i, j;//El i es para cambiar de palabra, j es para cambiar de caracter
//*texto[total_palabras+1] = '\0';
texto[2] = '\0';
for(i=1; i<total_palabras;i++) //Recorro por palabra, solo menor ya que luego uso palabra + 1
{
texto[0] = *(palabras+i);//Primera palabra
texto[1] = *(palabras+i+1);//Segunda palabra
j=0;
while( (*(texto[0]+j) > *(texto[1]+j)) && ( (*(texto[1]+j) != '\0') || (*(texto[0]+j) != '\0') ) )
{
j++;
}
if( (*(texto[0]+j) < *(texto[1]+j)) || (*(texto[1]+j) != '\0'))//Las cambio si la primera es mas larga
{
aux = (texto[1]);
texto[1] = texto[0];
texto[0] = aux;
}
}
for(i=1; i<=total_palabras; i++)
printf("%d) %s\n\n", i, *(palabras+i));
} |