Es en C, el problema es que tengo la idea de como hacer el ejercicio 2, pero no me sale, seria de mucha ayuda. :D
Ejercicio 1
Hacer un programa que genere aleatoriamente un password de 8 caracteres que contenga solo los símbolos: 012...9, abc...z, ABC...Z y !?@#$%&+-‐*, el programa deberá hacer lo siguiente:
• Llena una cadena con todos los símbolos permitidos.
• Sortear símbolos de esta cadena para ir construyendo el password.
Ejercicio 2
Hacer un ciclo que pida un password al usuario y que solo acepte passwords con las siguientes características.
• Que sea de 8-‐12 caracteres.
• Que solo incluya lo símbolos símbolos del ejercicio anterior pero deberá incluir al menos un símbolo de cada grupo.
• Que no repita consecutivamente ningún símbolo.
#include<stdio.h>
#include<string.h>
int eval(char c);
int evalPassword(char *pwd);
int main() {
if(evalPassword("abCD120%()#/")) {
printf("Cumple con los requisitos\n");
}
else {
printf("No cumple con los requisitos\n");
}
if(evalPassword("AAAAAAAAA")) {
printf("No cumple con los requisitos\n");
}
else {
printf("No cumple con los requisitos\n");
}
}
int evalPassword(char *pwd) {
int len = strlen(pwd);
int letras = 0,minusculas = 0,mayusculas = 0,simbolos = 0,r = 0, i = 0,continua = 0;
if(len >= 8 || len <= 12 ) {
i = 0;
while(i < len) {
switch(eval(pwd[i])) {
case 0:
minusculas++;
break;
case 1:
mayusculas++;
break;
case 2:
letras++;
break;
case 3:
simbolos++;
break;
}
i++;
if(i+1 < len) {
if(pwd[i] == pwd[i+1]) {
continua = 1;
}
}
}
if(!continua && minusculas && letras &&letras && simbolos) {
r = 1;
}
}
return r;
}
int eval(char c) {
if( ( c>='a' && c<='z' ) ) {
return 0;
}
else {
if( c>= 'A' && c <= 'Z' ){
return 1;
}
else {
if( c>='0' && c<='9') {
return 2;
}
else { //Todos los demas simbolos
return 3;
}
}
}
}
Ok, creo que le entiendo. vamos a ver :)
Cita de: MikeBaeza en 15 Abril 2016, 05:11 AM
Compila pero no sale nada :O haha
el dio el codigo para que vieras como iba, no para entregarselo al profe... por lo menos lee el código y mira que tiene o le falta