Código
/*El 1º parámetro siempre va a ser la longitud de la clave*/ for (int i=1; i<argc; i++){ //¿Poder cargar el tamaño de la clave? } else{ } }
Código
#include <string.h> #include <stdlib.h> #include <stdio.h> #include <time.h> #include <ctype.h> int main(int argc, char *argv[]){ /* Cada uno de los parámetros necesarios para utilizar en la consola*/ int mayusculas = 0; int minusculas = 0; int digitos = 0; int especiales = 0; #define CARACTERES_ESPECIALES "!@#$^&*?" /*El 1º parámetro siempre va a ser la longitud de la clave*/ for (int i=1; i<argc; i++){ //??? } else{ } } /*A partir del 2º parámetro pueden ser mayúsculas, minúsculas...*/ for (int i=2; i<argc; i++){ mayusculas = 1; } minusculas = 1; } especiales = 1; } mayusculas = 1; minusculas = 1; } mayusculas = 1; minusculas = 1; digitos = 1; } mayusculas = 1; minusculas = 1; digitos = 1; especiales = 1; } else{ } } /*Creamos el alfabeto de todos los parámetros para luego hacer la clave libremente*/ int tam_alfabeto = 1; // Para finalizar la cadena - depuración if (mayusculas) tam_alfabeto += 'Z' - 'A' + 1; if (minusculas) tam_alfabeto += 'z' - 'a' + 1; if (digitos) tam_alfabeto += 10; int index = 0; for (char c='A'; c<='Z' && mayusculas; c++) alfabeto[index++] = c; for (char c='a'; c<='z' && minusculas; c++) alfabeto[index++] = c; for (char c='0'; c<='9' && digitos; c++) alfabeto[index++] = c; for (int i=0; i<strlen(CARACTERES_ESPECIALES); i++) alfabeto[index++] = CARACTERES_ESPECIALES[i]; alfabeto[index] = 0; // Solo para fines de depuración /*Generamos la clave*/ int clave_ok; for( int i=0; i<argc; i++){ } clave[argc] = 0; // Finalizamos la cadena }