(Ayuda) Programa Password \"Cadenas\" (C)


26 de Agosto del 2016
#include 
#include 
 
char pass[10];
int correcto;
int intento;
const char contrasena[]="1992"; /*1992 es la contraseña que se debe introducir*/
 
int main(void)
{
    intento=1;
    correcto=0;
    printf("Introduzca la contrasena: "); gets(pass); printf("n");
    if (strcmp(pass,contrasena)==0) correcto=1;
    while ((correcto==0)&&(intento<3))
    {
        intento++;
        printf("Contrasena incorrecta. %i intento: ", intento); gets(pass); printf("n");
        if (strcmp(pass,contrasena)==0) correcto=1;
    }
    if (correcto==0) printf("Se han excedido el numero de intentos.");
    else
        {
            printf("Bienvenido a la base de datos.");
            /*Aqui se puede poner lo que se quiera para que solo se tenga acceso en el caso de tener la contraseña*/
        }
    return 0;
}



Los requisitos que me piden en un ejercicio son los siguientes:

Realizar un programa que presente un menú con las siguientes opciones:

1. Almacenar un password (usar una cadena)

2. Validar el password:

- Deberá contener mínimo 7 caracteres

- Contener al menos un dígito, una letra mayúscula, una letra minúscula y un carácter especial.

3. Comprobar la entrada del password (verificar y notificar cuando se introduce un password correcto y uno incorrecto)

4. Cambiar el password (solicitar nuevo password y la reconfirmación, de ser iguales entonces almacenar el nuevo password, sino indicar la discrepancia en los password tecleados)

5. Salir del programa.

Deberán usarse funciones específicas de cadenas para resolver las opciones planteadas anteriormente.

El programa deberá ejecutarse varias veces usando un ciclo controlado por centinela (bandera).

Espero me puedan apoyar, dado que no paso de lo que llevo hecho y me cuesta un poco aprender un poco la programación, y al parecer no cumple con los requisitos.
Agradecería mucho su apoyo.