Programa que lea un palindromo

Como puedo escribir un programa que reciba una cadena de caracteres y que de dicha cadena obtenga todas las subcadenas
que son palíndromos, dado que un palíndromo debe tener al menos 3 caracteres de longitud, el programa debe aceptar cadenas con longitud mínima de 3 caracteres.
Todo esto utilizando la función de recursividad.

1 respuesta

Respuesta
1
No se si lo he entendido bien.
¿Quieres qué una función te ponga en pantalla todas las combinaciones de 3 caracteres de una cadena que le envíes o que solo te ponga en pantalla todos los trozos de 3 caracteres que se puedan sacar de esa cadena que le envías?
No, el programa debe pedir una palabra ejemplo anitalavalatina, después debe de decirme "LA PALABRA ANITALAVALATINA CONTIENE 7 PALINDROMOS LOS CUALES SON:"y es ahí donde debe darme primero como ya vieron el numero de palindromos y después sus subpalindromos, ir reduciéndola hasta que m kden nada+3 en este caso "AVA"y si no tiene por lo menos 3 letras no hace nada.
Gracias
Ok la función comprobar seria entonces, enviándole la cadena que llamaremos "cadena"
int x1, x2, tam,t,s;
int encontrado = 0;
char comprueba[50];
//Miramos el tamaño de cadena
tam=0;
while(cadena[tam]!="\n") tam++;
tam--;
//Comprobamos cadena 0=buscando 1=no palindromo 2=palindromo
if(tam<3){
    return 0;
   }
   else{
   x1=0;
   x2=tam;
   while (encontrado == 0){
      if (cadena[x1]!=cadena[x2]) encontrado=1;
      if (x1>x2) encontrado = 2;
      x1++;
      x2--;
      }
   if (encontrado==2) printf("%s",cadena);
   }
//Comprovamos subpalindromos
x2=3;
while(x2<tam){
   x1=0;
   while(cadena[x1+x2]!="\n"){
      t=0;
      while (t<50){
             comprueba[t]="\n";
             t++;
             }
      t=x1;
      s=0;
      while(t<x1+x2){
         comprueba[s]=cadena[t];
         t++;
         s++;
         }
      comprobar(comprueba);
      x1++;
      }
   x2++;
   }
return 1;

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas