elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Únete al Grupo Steam elhacker.NET


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  Odenamiento Alfabetico en txt
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Odenamiento Alfabetico en txt  (Leído 3,351 veces)
SantyXDz

Desconectado Desconectado

Mensajes: 2


Ver Perfil
Odenamiento Alfabetico en txt
« en: 19 Agosto 2013, 02:11 am »

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.


En línea

mavicadi

Desconectado Desconectado

Mensajes: 20



Ver Perfil
Re: Odenamiento Alfabetico en txt
« Respuesta #1 en: 19 Agosto 2013, 03:04 am »

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.


En línea

do-while


Desconectado Desconectado

Mensajes: 1.276


¿Habra que sacarla de paseo?


Ver Perfil
Re: Odenamiento Alfabetico en txt
« Respuesta #2 en: 19 Agosto 2013, 10:36 am »

¡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!
En línea

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


Desconectado Desconectado

Mensajes: 1.211



Ver Perfil
Re: Odenamiento Alfabetico en txt
« Respuesta #3 en: 19 Agosto 2013, 10:44 am »

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

Código
  1. string Cadena = "Un ejemplo";
  2. string Cadena2 = "Otro ejemplo";
  3.  
  4. if (Cadena > Cadena2) // La cadena va despues de Cadena2

O usar unos de los muchos algoritmos de ordenamiento:

Código
  1. vector<string> Cadenas;
  2.  
  3. Cadenas.push_back("Murcielago");
  4. Cadenas.push_back("Calabaza");
  5. Cadenas.push_back("Zombie");
  6.  
  7. sort(Cadenas.begin(),Cadenas.end()); // Ordenar...
En línea

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


Desconectado Desconectado

Mensajes: 1.248


Ver Perfil
Re: Odenamiento Alfabetico en txt
« Respuesta #4 en: 19 Agosto 2013, 13:02 pm »

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.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines