Estoy tratando de obtener un programa para permitir que un usuario ingrese una palabra o carácter, lo almacene y luego lo imprima hasta que el usuario lo vuelva a escribir, saliendo del programa. Mi código se ve así:
#include <stdio.h>
int main()
{
char input[40];
char check[40];
int i=0;
printf("Hello!\nPlease enter a word or character:\n");
gets(input);
printf("I will now repeat this until you type it back to me.\n");
while (check != input)
{
printf("%s\n", input);
gets(check);
}
printf("Good bye!");
return 0;
}
El problema es que sigo obteniendo la impresión de la cadena de entrada, incluso cuando la entrada del usuario (cheque) coincide con el original (entrada). ¿Estoy comparando los dos incorrectamente?
strcmp()
devuelve cero cuando sus entradas son iguales explica cómo comparar las cadenas de igualdad, desigualdad, menor que, mayor que, menor que o igual, y mayor que o igual. No todas las comparaciones de cadenas son para la igualdad. Las comparaciones sensibles a mayúsculas y minúsculas son diferentes nuevamente; otras comparaciones especiales (orden de diccionario, por ejemplo) requieren comparadores más especializados, y hay expresiones regulares para comparaciones aún más complejas.
gets()
. También se ha eliminado del estándar desde C11 -> Lea ¿
gets( )
fue eliminado de la norma. Usar en sufgets( )
lugar.