Dejo los comentarios de que hace entre comillas, el codigo es del usuario do-while
Y solo me queda comentar que el código proporcionado por el usuario do-while es, a mi punto de vista una verdadera pieza maestra!!!
Muestra un gran nivel del uso del lenguaje
Saludos!
Código (c) [Seleccionar]
#include<stdio.h>
int main(void) {
char *s1 = "aaaabbbcccddddee";
funcion(s1); //Mandamos la candena de s1 a la "funcion"
return 0;
}
char funcion(char *s) //Se recive como parametro un apuntador a una Cadena X
{
if(!(*s)) //Evaluamos si la posicion 0 de la cadena X "Actual" es 0, en caso de que lo sea se termina esta funcion por el return
return *s;
if(*s != funcion(s + 1)) //Enviamos la cadena actual a la funcion, pero... pero.. la enviamos apartir de la posicion 1, esto es la posicion 0 (Inicial) se omite se manda la posicion 1 ejemplo si la cadena "Actual" es "ABCDE\0" se manda la funcion recursiva "BCDE\0"
printf("%c",*s); //Y en el if evaluamos si el caracter en su posicion 0 y el caracter en su posision 1 son caracteres distintos entonces imprimimos el caracter actual
return *s;
}
/*
Entontes la funcion dejara de llamarse a si misma cuando llegua al caracter nulo, apartir de ahi se imprimiran primero los ultimos caracteres llamados, esto es, la ultima funcion valida llamada tiene el ultimo caracter y ese es el primer printf que se ejecuta una vez que aplique el return se ejecutaran los printf de las funciones anteriores
*/
Y solo me queda comentar que el código proporcionado por el usuario do-while es, a mi punto de vista una verdadera pieza maestra!!!
Muestra un gran nivel del uso del lenguaje





Saludos!