Domingo 22 de Diciembre de 2024, 22:55
SoloCodigo
Bienvenido(a),
Visitante
. Por favor,
ingresa
o
regístrate
.
¿Perdiste tu
email de activación?
Inicio
Foros
Chat
Ayuda
Buscar
Ingresar
Registrarse
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Cadenas En Tablas
« anterior
próximo »
Imprimir
Páginas: [
1
]
Autor
Tema: Cadenas En Tablas (Leído 1859 veces)
Arsys
Miembro activo
Mensajes: 26
Cadenas En Tablas
«
en:
Viernes 4 de Junio de 2004, 17:55 »
0
Pues eso, me gustaría saber si se pueden meter las cadenas de letras en tablas.
Por ejemplo, pedir una palabra y almacenarla en una tabla.
Tweet
nicokiki
Miembro MUY activo
Mensajes: 298
Re: Cadenas En Tablas
«
Respuesta #1 en:
Viernes 4 de Junio de 2004, 18:43 »
0
Hola!!!!!!
Lo voy a hacer de la manera mas facil posible, q es usando la STL.
Código: Text
//Vector de la STL
#include <vector>
//String de la STL
#include <string>
typedef std::string TString;
typedef std::vector<TString> TVector;
Luego en el main, declaras un vector de tipo TVector y le agregas una cadena. Un ejmplo seria asi:
Código: Text
TVector MiVector;
MiVector.push_back("Hola Mundo!!!");
Y listo
Salu2!!!!!!
Arsys
Miembro activo
Mensajes: 26
Re: Cadenas En Tablas
«
Respuesta #2 en:
Viernes 4 de Junio de 2004, 20:35 »
0
El tema que es que me han mandado hacer un programa que meta palabras en un fichero y luego las pase a otro fichero ordenadas por orden alfabético, y he pensado que lo más fácil sería hacerlo con tablas, ¿o es más fácil hacerlo de otra forma?
Saludos
nicokiki
Miembro MUY activo
Mensajes: 298
Re: Cadenas En Tablas
«
Respuesta #3 en:
Viernes 4 de Junio de 2004, 22:24 »
0
Hola!!!!!!
En tu caso en el q debes ordenar palabras por orden alfabetico, lo q yo haria es crear una clase String para asi poder sobrecargar, el "<", el "=", el ">" para poder ordenar los strings (salvo q el string de la STL tenga sobrecargado el <, > y =, cosa q desconozco).
Luego por tu tema en especial, lo q te conviene es parsear el archivo q tiene los datos cargados y cargarlo en memoria en un vector de la STL o lista de la STL o vector tuyo o lista tuya o arbol o lo q sea, pero q este en memoria. Luego lo ordenas al vector y como ultimo paso recorres secuencialmente el vector ordenado y lo volcas al archivo de destino. Tene en cuenta q si tenes 9 mil millones de palabras distintas, dudo q lo puedas mantener en memoria, pero dudo q ese sea tu caso.
Salu2!!!!!!!
lordford
Miembro activo
Mensajes: 53
Re: Cadenas En Tablas
«
Respuesta #4 en:
Lunes 7 de Junio de 2004, 07:21 »
0
Hola:
mira, una solucion seria utilizando la lista de la STL, declarandola para tipo String asi:
Código: Text
// C++ Builder 6
#include <list.h>
// Declaracion de la lista
list<String>* mylist;
// Inicializar
mylist = new list<String>;
Asi podras almacenar Strings sin problemas, eliminar, adicionar, insertar en determinada posicion....
Y puedes implementar un metodo que determine primero en que posicion se debe insertar el String antes de hacerlo, o sea que la lista se ordene alfabeticamente ella sola, y sera mejor para trabajarlo en el fichero.
Para ordenar puedes utilizar las funciones mas elementales de los Strings, por ejemplo:
Código: Text
// C++ Builder 6
#include <string.h>
// Dados 2 Strings
String cad1 = "programa", cad2 = "programador";
// Ahora comparas
int result = strcmp(cad1.c_str(), cad2.c_str());
// Luego pones el codigo.
Y asi comparas para ordenar alfabeticamente. EL algoritmo de insercion no es difisil, solo tienes un inconveniente, la STL se implemento para acceder a los elementos de las clases contenedoras a traves de objetos llamados "iteradores". Busca referencia sobre estos pues no es muy difisil utilizarlos. Si tienes dudas postea nuevamente.
Salu2,
LordFord
~ Si quieres que algo en la vida te salga bien]~
nicokiki
Miembro MUY activo
Mensajes: 298
Re: Cadenas En Tablas
«
Respuesta #5 en:
Lunes 7 de Junio de 2004, 14:55 »
0
Lordford!!!!!!!
Antes q nada desconozco si estas con Builder C++ (el de Delphi).
Porque el String asi como lo usaste no existe, de ninguna manera. Ya lo hemos discutido en posts anteriores y q alguien me demuestre q existe el String como tipo de dato nativo de C/C++. Si vos hicieras :
typedef std::string String;
Entonces si lo podes usar, pero de otra manera no existe.
Q haya librerias q implementan el String no tengo duda, pero si leemos un libro de C o C++ no existe el String como tipo de dato. Si existe el de la STL (pero es para C++ y no para C).
2º: para usar los strings de la STL tenes q incluir <string> y NO <string.h>
Salu2!!!!!!
Noel Solw
Miembro activo
Mensajes: 81
Re: Cadenas En Tablas
«
Respuesta #6 en:
Lunes 7 de Junio de 2004, 17:44 »
0
Me parece que no necesitas usar tablas.
Supongo que trabajas en c++ standart y usas archivos text.
Lees el archivo fuente, linea por linea, y vas separando las diferentes palabras con strtok(), las ordenas y guardas en el archivo de destino.
Hay que pensar que pasa con los separadores entre palabras. Esto tampoco es dificil de solucionar, todo depende de las condiciones del problema.
Imprimir
Páginas: [
1
]
« anterior
próximo »
SoloCodigo
»
Foros
»
Programación General
»
C/C++
(Moderador:
Eternal Idol
) »
Cadenas En Tablas