Código Lex para validación de contraseña

Lex es un programa de computadora que genera analizadores léxicos y fue escrito por Mike Lesk y Eric Schmidt. Lex lee un flujo de entrada que especifica el analizador léxico y genera el código fuente que implementa el lex en el lenguaje de programación C.

Problema: Tenemos que validar contraseña.
Una contraseña es correcta si contiene:

  1. Al menos 1 carácter en mayúscula
  2. Al menos 1 carácter en minúscula
  3. Al menos 1 dígito
  4. Al menos 1 carácter especial
  5. Mínimo 8 caracteres

Ejemplo:

Input: Geeksforgeeks
Output: INVALID

Input: Geeks@12
Output: VALID 

Nota: Las palabras pueden estar formadas por caracteres en minúsculas, caracteres en mayúsculas y dígitos.

A continuación se muestra la implementación para contar el número de palabras.

%{ 
    #include<stdio.h> 
    #include<string.h> 
    int a = 0, b=0, c=0, d=0, l=0; 
%} 
    
  
%% 
[a-z]    {a++;l++;}
[A-Z]    {b++;l++;}
[0-9]    {c++;l++;}
[$&+, :;=?@#|'<>.-^*()%!] {d++;l++;}
.  ;
%% 
    
int yywrap(void){} 
    
int main() 
{    
    // The function that starts the analysis 
    yylex(); 
      if(a>0 && b>0 && c>0 && d>0 && l>=8)
    printf("VALID\n");
    else
        printf("INVALID\n");
    return 0; 
} 

Producción:


Publicación traducida automáticamente

Artículo escrito por AnmolAgarwal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *