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 ...
 
Antiguo 26/08/2012, 16:09
 
Fecha de Ingreso: julio-2011
Mensajes: 21
Antigüedad: 14 años, 11 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));
}
 
Antiguo 26/08/2012, 16:46
 
Fecha de Ingreso: diciembre-2011
Ubicación: CABA
Mensajes: 433
Antigüedad: 14 años, 5 meses
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
 
Antiguo 27/08/2012, 18:49
Avatar de cronopiomx  
Fecha de Ingreso: mayo-2012
Ubicación: Programing Cloud
Mensajes: 282
Antigüedad: 14 años, 1 mes
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 18:53.