Cómo eliminar caracteres duplicados en la cadena char * p = ‘chaabbcc’

Aquí está el algoritmo

1. Crear una cola con estructura

Nodo de estructura {
información de char;
Nodo * siguiente;
};

2. Luego haga una función que tenga un carácter como parámetro

3. Las funciones comienzan de adelante hacia atrás y si el carácter coincide con la parte de información del Nodo, haga que el código devuelva falso

4. Si hasta el final no coincide, entonces devuelva verdadero

5. Para un valor verdadero, realice una inserción de ese carácter en la lista

6. Cuando todo esté hecho.

7. cuente todos los nodos de la lista

Nodo * ptr = primero;
while (ptr! = NULL) {
recuento ++;
ptr = ptr-> siguiente;
}

8. declarar una nueva cadena

char str = nuevo char [cuenta];

9. almacenar estos caracteres como secuencia

Nodo * ptr = primero;
int i = 0;
while (ptr! = NULL) {
str [i] = ptr-> info;
i ++;
ptr = ptr-> siguiente;
}

HECHO

#include

int main ()

{

char * p = “chaabbcc”;

int eachAlphaCount [26]; // para verificar si el personaje apareció antes o no

char c;

int i;

para (i = 0; i <26; i ++)

{

eachAlphaCount [i] = 0;

}

char * q = (char *) malloc (sizeof (char) * 100);

char * z = q; // para apuntar a una cadena ficticia que contendrá nuestra cadena resultante por fin

while (* p! = ‘\ 0’)

{

c = * p;

printf (“c es% c, eacharr es% d,% d \ n”, c, eachAlphaCount [c-97], c-97);

if (eachAlphaCount [c-97] == 0) // ascii de a es 97, entonces Char c-97 mantendrá el índice de cada alfa en la matriz

{

* q = c;

q ++;

eachAlphaCount [c-97] = 1;

}

p ++;

}

printf (“cadena con duplicados eliminados% s”, z);

devuelve 0;

}

#include

int main ()

{

char * p = “chaabbcc”;

int eachAlphaCount [26]; // para verificar si el personaje apareció antes o no

char c;

int i;

para (i = 0; i <26; i ++)

{

eachAlphaCount [i] = 0;

}

char * q = (char *) malloc (sizeof (char) * 100);

char * z = q; // para apuntar a una cadena ficticia que contendrá nuestra cadena resultante por fin

while (* p! = ‘\ 0’)

{

c = * p;

printf (“c es% c, eacharr es% d,% d \ n”, c, eachAlphaCount [c-97], c-97);

if (eachAlphaCount [c-97] == 0) // ascii de a es 97, entonces Char c-97 mantendrá el índice de cada alfa en la matriz

{

* q = c;

q ++;

eachAlphaCount [c-97] = 1;

}

p ++;

}

printf (“cadena con duplicados eliminados% s”, z);

devuelve 0;

}

Necesita más detalles sobre el problema.

Si la entrada es “chaabbcc”, ¿desea la salida como “ch” (eliminar cualquier duplicado) o desea reemplazar los duplicados con una sola ocurrencia? En cuyo caso la salida debería ser “chabc”. ¿O desea que la salida sea “chab”, ya que ‘c’ apareció al comienzo de la cadena y una letra solo puede aparecer una vez.

Proporcione un conjunto de entradas y salidas deseadas para que la pregunta sea bien planteada por un programador.