Red de conocimiento informático - Aprendizaje de programación - ¡La función gets() no se ejecuta, sino que se omite directamente! Buscando una explicación!

¡La función gets() no se ejecuta, sino que se omite directamente! Buscando una explicación!

No se salta, porque presionó la tecla Enter después de ingresar y, y la función gets() recibirá la tecla Enter como entrada, por lo que ocurrirá este problema. Simplemente agregue getchar() delante de gets(a), la fuente. El código es el siguiente:

#include

#include

int is_within(char a[],char * b);

int main()

{

char a[50]={ 0};

char b[50 ]={0};

char pd='y';

int n=0;

while((tolower(pd)=='y '))

{

printf("¡Ingrese la primera cadena!\n");

getchar();

gets(a); //salta directamente el segundo ciclo, ¡no se ejecuta!

printf("¡Ingrese una segunda cadena! \n");

gets(b);

n=is_within(a,b);

if(n==1)

{

printf("¡Encontrado!")

}

else

{

printf("¡No encontrado!")

}

printf("¿Continúa (y/)? n)?\n");

//scanf("%c",&pd);

pd=getchar();

}

}

devuelve 0;

}

is_within(char a[],char *b)

{

int i=0;

int m=0;

while(a[i]!= '\0')

{

for(m=0;;)

{

si(a[i+m]==*(b+m))

{

m++;

//*b++;

if(*(b+m+1)=='\0 ')

{

devolver 1

}

}

más

romper;

}

i++;

}

devolver 0;

}

Lo he probado, si tienes alguna otra pregunta, ¡haz un seguimiento!