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

Eliminar lineas repetidas de un string con getline

Estas en el tema de Eliminar lineas repetidas de un string con getline en el foro de C/C++ en Foros del Web. Hola!!!!... Estoy teniendo un problema circunstancial jajaja.. Estoy atascado en una función que en teoría debe recibir un string completo, trocearlo por linea (ya que ...
  #1 (permalink)  
Antiguo 28/01/2012, 12:14
Avatar de Der_Gregor  
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 0
Eliminar lineas repetidas de un string con getline

Hola!!!!... Estoy teniendo un problema circunstancial jajaja.. Estoy atascado en una función que en teoría debe recibir un string completo, trocearlo por linea (ya que tienen un delimitador '\n') y eliminar registros duplicados o triplicados o cuatriplicados. Hasta quitarlo por parte ya esta echo, pero no puedo quitar los repetidos.. Alguna ayudita??..

Código:
string eliminarRepetidos(string &strSucio){
istringstream strTemporal(strSucio);
string        lineaSucia, strLimpio;
unsigned current_line = 0;
string strcopia[current_line];


while (getline( strTemporal, lineaSucia, '\n' )) {
	
	strcopia[current_line++] = lineaSucia; // SUPONGO QUE PODRIA SER ALGO ASI??
		
	//strLimpio += lineaSucia+'\n'; // devuelve bien 
}

return strLimpio;	
}
El objetivo final es guardar todo en un fichero pero sin lineas duplicadas. Agradezco de antemano cualquier manito!!

Gracias!!!!!!......
  #2 (permalink)  
Antiguo 28/01/2012, 21:40
Avatar de Der_Gregor  
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Eliminar lineas repetidas de un string con getline

Alguien puede dar una mano? que me esta rompiendo el coco.. Tal vez guardar la 1era linea en un array e ir comparandolo??.. Pero como!! estoy probando de todo y no llego a la conclusion.. Un dato interezante es que las lineas se repiten una tras otra, osea que no tengo que recorrer todo el string para comparar la 1era linea con la ultima, es comparar la 1era con la 2da, 3ra y 4ta y volver.. Porque los repetidos estan juntos. Alguna idea? porfa....
  #3 (permalink)  
Antiguo 30/01/2012, 09:10
Avatar de Der_Gregor  
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Eliminar lineas repetidas de un string con getline

Bueno, al final esta resuelto, para a los que les sea útil, aquí esta la solución: "unique_copy"

http://www.cplusplus.com/forum/general/60497/#msg327039
  #4 (permalink)  
Antiguo 30/01/2012, 09:22
 
Fecha de Ingreso: abril-2010
Ubicación: Rosario
Mensajes: 1.850
Antigüedad: 14 años, 8 meses
Puntos: 228
Respuesta: Eliminar lineas repetidas de un string con getline

Por ahi llegue tarde pero C++ tiene una estructura llamada Set (conjuntos). En los conjuntos no existen elementos repetidos. Si agregas dos iguales el propio set te elimina uno.

Saludos
  #5 (permalink)  
Antiguo 30/01/2012, 09:33
Avatar de Der_Gregor  
Fecha de Ingreso: enero-2012
Ubicación: España
Mensajes: 9
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Eliminar lineas repetidas de un string con getline

Gracias sam90, mirare lo de los set pero de todas formas ya lo solucioné con la función unique_copy..

Gracias igual.. Saludos..

Etiquetas: fichero, getline, lineas, string
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:06.