Foros del Web » Programación para mayores de 30 ;) » C/C++ »

Ordenar alfabeticamente

Estas en el tema de Ordenar alfabeticamente en el foro de C/C++ en Foros del Web. 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 ...
  #1 (permalink)  
Antiguo 26/08/2012, 16:09
 
Fecha de Ingreso: julio-2011
Mensajes: 21
Antigüedad: 13 años, 5 meses
Puntos: 0
Exclamación 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));
}
  #2 (permalink)  
Antiguo 26/08/2012, 16:46
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 13 años
Puntos: 94
Respuesta: Ordenar alfabeticamente

Hola!

Para ordenar yo te diria que veas algunos algoritmos de ordenamiento, el mas facil es el "metodo de la burbuja". Googlea ese metodo y aplicalo para cadenas de caracteres
Tambien podrias usar la funcion strcmp(a menos que no te dejen) de la libreria string.h para saber que cadena es mas grande alfabeticamente


Saludos
  #3 (permalink)  
Antiguo 27/08/2012, 18:49
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 12 años, 7 meses
Puntos: 28
Respuesta: Ordenar alfabeticamente

tambien te puede servir esto usando Buble Sort y string, para comparar con arrays de char tienes que hacer con la funcion strcmp(... , ...),

s2
cronos

#include <iostream>
#include <string.h>
using namespace std;

int main ()
{
string a[] = {"aa", "bb"};
string temp = "";

for (int i =0; i < 2; i++)
for (int j = i+1; j < 2; j++)
if (a[i]>a[j])
{
temp = a[i];
a[i] = a[j];
a[j] = temp;
}


for (int i =0; i < 2; i++)
cout<<a[i]<<endl;



system("pause");
}

Etiquetas: alfabeticamente, funcion, int, programa
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:31.