Odenamiento Alfabetico en txt

Iniciado por SantyXDz, 19 Agosto 2013, 02:11 AM

0 Miembros y 1 Visitante están viendo este tema.

SantyXDz

Hola,
Verán tengo unos txt una lista de palabras, cada un en una linea y debo ordenar las palabras en orden alfabético con diferentes algoritmos de ordenamiento (para compara sus tiempos y eso...).
Plantear los algoritmos mas o menos lo se hacer, sin embargo carezco de experiencia con c++ y no se hacer algunas cosas, espero me puedan ayudar.

Mi primer problema es el comparar palabras para saber cual es alfabéticamente mayor que cual, eh visto que en la biblioteca string.h hay una función llamada strcmp que realiza esa función pero la verdad no se utilizarla del todo.

Mi segundo problema y el principal es que no se como trabajar con archivos externos, no se como cambiar el orden de las palabras dentro del txt, como leerlas etc... eh visto que hay muchas bibliotecas para trabajar con archivos externos como ofstream, ifstream, filebuf y fstream pero no se su utilización.

espero me puedan ayudar.

mavicadi

Hola! A ver si te puedo ayudar un poco aunque no programe en C++, solo sé un poco de C.

En C he usado strcmp y es fácil. Se usa así : strcmp(cad1,cad2); El resultado será un número entero. Si el número es mayor que 0, significa que cad1 es mayor que cad2, si es menor que cero pues que cad1 es menor que cad2 y si es 0, que las cadenas son iguales.

Me imagino en que en C++ será así también.

En cuanto al segundo, no sé muy bien, yo en las clases de C usaba la función fopen para abrir archivos de texto y ahí nos hemos quedado. Siento no ser de más ayuda.

Un saludo.

do-while

¡Buenas!

Lo de strcmp ya te lo han explicado.

Después de esto, lo que te toca es trabajar con el contenido del archivo:

fopen
fclose
fgets
feof

Con estas funciones debería ser suficiente.

¡Saludos!
- Doctor, confundo los números y los colores.
- Vaya marrón.
- ¿Marrón? ¡Por el culo te la hinco!

amchacon

C++ es más fácil tambien. Puedes usar por un lado la clase string:

Código (cpp) [Seleccionar]
string Cadena = "Un ejemplo";
string Cadena2 = "Otro ejemplo";

if (Cadena > Cadena2) // La cadena va despues de Cadena2


O usar unos de los muchos algoritmos de ordenamiento:

Código (cpp) [Seleccionar]
vector<string> Cadenas;

Cadenas.push_back("Murcielago");
Cadenas.push_back("Calabaza");
Cadenas.push_back("Zombie");

sort(Cadenas.begin(),Cadenas.end()); // Ordenar...
Por favor, no me manden MP con dudas. Usen el foro, gracias.

¡Visita mi programa estrella!

Rar File Missing: Esteganografía en un Rar

eferion

Pues bien, primero tienes que leer el contenido del archivo y rellenar un array con las palabras que te vas encontrando.

Una vez tienes las palabras en el array tienes que aplicar un algoritmo de ordenación a tu elección.

Finalmente coges el array ordenado y lo almacenas en otro fichero o lo presentas por pantalla... eso a tu elección.