Zona HTML Zona Java Zona PHP Zona ASP Zona Bases de datos
Inicio > Foros > C / C++ > Eliminar caracteres repetidos de una cadena
-Foros de debate

C / C++
Lista de foros | Lista de mensajes de este foro

Privacidad: Recuerde que la información escrita en los foros de programación es 100% pública y que su ip será registrada asociada a su mensaje. Si encuentra un mensaje fuera de lugar, por favor, notifiquelo para su revisión y eliminación.

Eliminar caracteres repetidos de una cadena
Enviado por rrr_vanquish el día 5 de marzo de 2004

Hola, es mi primer mensaje en el foro, por lo que os envio un saludo a todos.
Tengo un problema con un pequeño ejercicio: eliminar caracteres repetidos de una cadena, por supuesto con punteros (que se me dan fatal).

Una funcion recibe una cadena y debe retornar la cadena sin caracteres repetidos.
Sé que debe ser muy sencillo pero me he estancado y no soy capaz de solucionar el problema.

Alguien podría ayudarme a encontrar la solución?

Gracias

 
Re: Eliminar caracteres repetidos de una cadena
Enviado por Diabliyo el día 6 de marzo de 2004

Hola:

Puedes hacerlo de MUCHAS maneras, pero es primordial saber TU NIVEL de programacion.... ya que se puede hacer usando: arreglos, estructuras, arboles binarios...

byeeeeeeeeeee

 

Re: Eliminar caracteres repetidos de una cadena
Enviado por nosic el día 6 de marzo de 2004

hola!, a ver, una manera muy simple es que una vez leida la matriz, la muestre por pantalla (que es opcional, pero queda bonito), y le pida al usuario q introduzca el valor q desea borrar. ahora solo te keda hacerte un bucle for q recorra la matriz e ir preguntando en cada paso si la matriz[i][j] es = a la variable en la q guardastes el dato introducido por el usuario. entiendes el mecanismo verdad?? seria algo parecido a esto para rastrear la matriz:

for (i=0;i<numero_filas;i++
{
for (j=0;j<numero_columnas;j++)
if (matriz[i][j] == valor_usuario) matriz [i][j]=0;
}

espero que te sea util, asta luego!

 

Re: Eliminar caracteres repetidos de una cadena
Enviado por Alejandro 95 el día 6 de marzo de 2004

Hola, no sé si esto es tan sencillo, a mi me a costado bastante, así que si es lo que necesitabas, pues bueno, tu invitas la cerveza!


//---------------------------------------------------------------------------
#include <iostream>
using namespace std;

void Unico(char* cadena, char* resultado, int n);
bool Esta(char a, char* cadena, int n); // Cuál?

int main()
{

char *cadena = "Recuerdame no usar punteros a menos que sea "
"estrictamente necesario !";
cout << cadena << endl;

int n = strlen(cadena);
char *resultado = new char[n+1];
for(int i=0; i<n+1; i++) resultado[i] = '\0';

Unico(cadena, resultado, n);

cout << resultado << endl;

getchar();
delete resultado;

return 0;
}
//---------------------------------------------------------------------------
void Unico(char* cadena, char* resultado, int n)
{

// el primero:
*resultado = *cadena;
int k = 1;

// los siguientes:

for(int i=1; i<=n; ++i) {
bool esta = Esta(cadena[i], resultado, n);

if (!esta) {
*(resultado+k) = *(cadena+i);
k++;
}

}
}
//--------------------------------------------
bool Esta(char a, char* cadena, int n)
{
for(int i=0; i<=n; ++i) {
if(a == *(cadena+i) )
return true;
}

return false;
}
//--------------------------------------------------------------------------------------

Uffff

 
Re: Re: Eliminar caracteres repetidos de una cadena
Enviado por rrr_vanquish el día 8 de marzo de 2004

Muchas gracias a todos por vuestras respuestas.

Alejandro 95, te mereces un par de cervecitas. Algo así es lo que buscaba. MUCHAS GRACIAS

 

Re: Re: Eliminar caracteres repetidos de una cadena
Enviado por jimmy el día 30 de septiembre de 2008

Hola amigo visita mi blog, ahi desarrolle dos maneras de solucionar ese pequeño problemita. saludos! :D
la URL es: http://algodecodigo.blogspot.com

 



Tienda
Patrocinados
 

Copyright © 1999-2006 Programación en castellano. Todos los derechos reservados.
Formulario de Contacto - Datos legales - Publicidad

Hospedaje web y servidores dedicados linux por Ferca Network