[ Foro de C ]

Programa con contraseña

05-Jun-2009 12:46
Aitor Ugarte
3 Respuestas

Hola a todos de nuevo,bueno,sigo con el curso de C,estoy leyendo el tema de como operar con cadenas,entonces se me ocurrio crear un programa que te pida una contraseña con lo que se explica en el curso pero no me sale.Este es el codigo: #include #include main() { char cocacola[20],clave2[20];/*cocacola seria la contraseña y clave2 lo que el usuario introduce*/ printf("Introduce la clave "); gets(clave2); if(strcmp(cocacola,clave2)==0) printf("Clave correcta"); else printf("clave incorrecta"); } No se,aunque meta la clave correcta me responde como si fuese incorrecta.Supongo que habra muchas formas de crear algo asi pero me gustaria que me dijeran si de esta forma o muy parecida es posible,ya que es lo que estoy estudiando en este momento. Gracias.
05-Jun-2009 12:49
Aitor Ugarte

Por cierto,¿como hacer para que me salga el codigo del programa de la forma correcta en el mensaje del foro?me sale todo seguido...
06-Jun-2009 21:51
Nacho Cabanes (+30)

Para que el programa salga un poco mejor formateado, el truco es escoger "Formato de texto plano", en la casilla "Tipo de formato", debajo del texto del mensaje.

En cuanto a tu pregunta inicial: en tu programa, la variable "cocacola" tiene ese nombre... pero no le das valor. De hecho, al no estar inicializada con ningún valor, contendrá simplemente basura (nada te garantiza que contenga siquiera la cadena vacía), de modo que nunca coincidirá con lo que tecleas.

basta con hacer un pequeño cambio a tu programa para que funcione bien: dar un valor a la cadena prefijada,

main()
{
 char claveadivinar[20] ,clavetecleada[20];

 strrcpy(claveadivinar, "cocacola");
 printf("Introduce la clave ");
 gets(clavetecleada);
 if(strcmp(claveadivinar, clavetecleada)==0)
   printf("Clave correcta");
 else
   printf("clave incorrecta");
}

A partir de esa estructura, ya sólo faltaría permitir que se repitiese, para que el usuario tenga más de una oportunidad.


07-Jun-2009 11:52
Aitor Ugarte

Ya lo entiendo,siempre me pasa lo mismo con las variables,me cuesta meterlo en la cabeza que hay que declararlas y darles valor :).Muchas gracias.






(No se puede continuar esta discusión porque tiene más de dos meses de antigüedad. Si tienes dudas parecidas, abre un nuevo hilo.)