Me gustaría saber si alguien ayudarme a completar lo que me queda de este programa que lo que va a hacer es mediante consola de comandos (cmd) nombraremos al archivo (en este caso se llama password) y seguido a esto especificaremos en consola lo que queremos que muestre: el número de caracteres que va a tener la contraseña poniendo (-1, -2, -3...) después si queremos que la contraseña sea solamente de letras minúsculas que lo especificaremos con: -n, si son mayúsculas con: -M, si es de números con: -d y luego si queremos utilizar varios de estos al mismo tiempo sería simplemente combinándolos, y si queremos que sea con todos los argumentos con -all. EJEMPLO: Contraseña de 9 caracteres con letras minúsculas y mayúsculas, y además, caracteres especiales: password -9 -Mn -c. Por cierto, al final también me gustaría añadir una función de error, que ya la tengo declarada al principio para que cuando el usuario coloque un parámetro que no existe, que le avise y mediante un printf() le avise de ello, aunque esto es relativamente fácil.
Código que llevo hecho:
password.c
Código
/* Generador de contraseñas por consola -l -Mn -nM -all */ #include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h> void numeros(int); void letras(int); void mayusculas(int); //Solo mayúsculas void minusculas(int); //Solo minúsculas void letrastodo(int); //Mayúsuculas y minúsculas void especiales(int); //Solo caracteres especiales void mayusnumeros(int); //Mayúsculas y números al mismo tiempo void minusnumeros(int); //Minúsculas y números al mismo tiempo void mayusminusnumeros(int); //Mayúsculas, minúsculas y números al mismo tiempo void todo(int); //Todo lo del programa (números, letras...) void error (void); //Si no seleccionas alguno de los parámetros (función error, que hay que hacer al final) char contrasenia[500]; //Se almacena la contraseña con 500 caracteres char mayus[] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; char minus[] = "abcdefghijklmnopqrstuvwxyz"; char nums[] = "0123456789"; char caracteres[] = "!@#$^&*?"; int main(int argc, char* argv[]){ int longitud; char opcion[4]; char item[4]; if (argc==3){ if (longitud < 5 || longitud < 66){ } else error(); } else error(); }
Diría que me queda poco por hacer, ya que tengo lo que son las declaraciones y los ifs correctamente, pero lo que me quedaría sería si no me equivoco hacer las funciones de las propias letras, numeros, caracteres especiales... Para que se genere la propia contraseña, pero no se cómo hacerlo y he visto algún post en este mismo foro y no me termino de aclarar al respecto, aunque probablemente sea utilizando un switch para cada uno de los argumentos, aún así agradecería que completaseis el código y fueseis explicando más o menos los procedimientos que habéis llevado a cabo. Por cierto, si veis algún error no dudéis en corregírmelo, muchas gracias.