Foro de elhacker.net

Programación => Programación C/C++ => Mensaje iniciado por: MikeBaeza en 15 Abril 2016, 04:38 am



Título: Ayuda con este programa
Publicado por: MikeBaeza en 15 Abril 2016, 04:38 am
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.      


Título: Re: Ayuda con este programa
Publicado por: AlbertoBSD en 15 Abril 2016, 05:02 am
Código
  1. #include<stdio.h>
  2. #include<string.h>
  3.  
  4. int eval(char c);
  5. int evalPassword(char *pwd);
  6.  
  7. int main() {
  8. if(evalPassword("abCD120%()#/")) {
  9. printf("Cumple con los requisitos\n");
  10. }
  11. else {
  12. printf("No cumple con los requisitos\n");
  13. }
  14. if(evalPassword("AAAAAAAAA")) {
  15. printf("No cumple con los requisitos\n");
  16. }
  17. else {
  18. printf("No cumple con los requisitos\n");
  19. }
  20. }
  21.  
  22. int evalPassword(char *pwd) {
  23. int len = strlen(pwd);
  24. int letras = 0,minusculas = 0,mayusculas = 0,simbolos = 0,r = 0, i = 0,continua = 0;
  25. if(len >= 8 || len <= 12 ) {
  26. i = 0;
  27. while(i < len) {
  28. switch(eval(pwd[i])) {
  29. case 0:
  30. minusculas++;
  31. break;
  32. case 1:
  33. mayusculas++;
  34. break;
  35. case 2:
  36. letras++;
  37. break;
  38. case 3:
  39. simbolos++;
  40. break;
  41. }
  42. i++;
  43. if(i+1 < len) {
  44. if(pwd[i] == pwd[i+1]) {
  45. continua = 1;
  46. }
  47. }
  48. }
  49. if(!continua && minusculas && letras &&letras && simbolos) {
  50. r = 1;
  51. }
  52. }
  53. return r;
  54. }
  55.  
  56. int eval(char c) {
  57. if( ( c>='a' && c<='z' ) ) {
  58. return 0;
  59. }
  60. else {
  61. if( c>= 'A' && c <= 'Z' ){
  62. return 1;
  63. }
  64. else {
  65. if( c>='0' && c<='9') {
  66. return 2;
  67. }
  68. else { //Todos los demas simbolos
  69. return 3;
  70. }
  71. }
  72. }
  73.  
  74. }
  75.  


Título: Re: Ayuda con este programa
Publicado por: MikeBaeza en 15 Abril 2016, 05:11 am
Ok, creo que le entiendo. vamos a ver :)


Título: Re: Ayuda con este programa
Publicado por: engel lex en 15 Abril 2016, 05:14 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