Tu problema principal es que todavia quedan datos en el buffer de entrada, te recomiendo que leas
¿Queda algo en el Buffer de Entrada stdin? (Solucionado)Utiliza las etiqutas para codigo
entrar_opcion_si_no = 1;
do{
printf("Desea segir ingresando mas datos? (s/n)\n"); case 's':
entrar_opcion_si_no = 0;
break;
case 'n':
entrar_opcion_si_no = 0;
entrar = 0; // Se cambia la variable para salir del menu principal
break;
default:
printf("opcion incorrecta, solo 's' o 'n'\n"); break;
}
}while(entrar_opcion_si_no == 1);
Otra cosa, se que estas empezado, pero como recomendacion deja de utlizar funciones fancy ( funciones de adorno ) y concentrate en aprender las estrucutras basicas
Es decir quita todo esto:
printf("\n\n\n\n\n\t ANTES DE CONTINUAR .........");
printf("\n\n\n\n\n\t FAVOR MAXIMIZAR LA PANTALLA DE EJECUCION DE C .........\n\n\n\n");
printf("\n\n\n\n\n .............");
system("pause");
system("cls");
Y tambien deja de utilizar conio.h no es una libreria estandar
Me tome la molestia de re-escribir tu programa con varia modificaciones.
#include<stdio.h>
#include<ctype.h>
#include<string.h>
#include<stdlib.h>
int main() {
char frase[50], frase2[50];
char temp[10];
int entrar = 1;
int i=0,entrar_opcion_si_no;
do {
printf("PROGRAMA PIDE 2 FRASES, PRIMERO LAS COMPARA A VER SI SON IGUALES, LUEGO BUSCA LA SEGUNDA DENTRO DE LA PRIMERA Y POR ULTIMO NOS DICE CUAL ES MAYOR\n"); printf("Ingrese frase 1 maximo 50 caracteres \n"); fseek(stdin
, 0, SEEK_END
); frase
[strcspn(frase
,"\n\r")] = '\0'; printf("Ingrese frase 2 maximo 50 caracteres \n"); fseek(stdin
, 0, SEEK_END
); frase2
[strcspn(frase2
,"\n\r")] = '\0';
printf("Primero vamos a compararlas si son iguales o no ...\n");
if (strcmp(frase
,frase2
)==0) { printf("La frase 1 \"%s\" es IGUAL a la frase 2 \"%s\"",frase
, frase2
); printf(" y la frase 2 esta dentro de la frase 1"); }
else {
printf("La frase 1 \"%s\" es DIFERENTE a lab frase 2 \"%s\"\n",frase
, frase2
); printf("La frase 1 es MAYOR que la frase 2\n"); else
printf("La frase 1 es MENOR que la frase 2 oooooo la frase2 MAYOR que la frase1.. como quieras vaso medio lleno vaso medio vacio jejeje\n"); }
if (strstr(frase
,frase2
)==NULL
) printf("La frase 2 NO esta incluida en la frase 1\n"); else
printf("La frase 2 SI esta incluida en la frase 1\n");
entrar_opcion_si_no = 1;
do{
printf("Desea segir ingresando mas datos? (s/n)\n"); case 's':
entrar_opcion_si_no = 0;
break;
case 'n':
entrar_opcion_si_no = 0;
entrar = 0; // Se cambia la variable para salir del menu principal
break;
default:
printf("opcion incorrecta, solo 's' o 'n'\n"); break;
}
fseek(stdin
, 0, SEEK_END
); }while(entrar_opcion_si_no == 1);
}while(entrar);
return 0;
}
Le quite la condición donde evalúas si son mayores a 50 de longitud, ya que con fgets limitas eso: