Eliminar caracteres repetidos de una cadena
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
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
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
Puedes hacerlo de MUCHAS maneras, pero es primordial saber TU NIVEL de programacion.... ya que se puede hacer usando: arreglos, estructuras, arboles binarios...
byeeeeeeeeeee
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!
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!
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] = ' ';
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
//---------------------------------------------------------------------------
#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] = ' ';
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
