Programa Lex para verificar si la string dada es Palindrome o no

Problema: escriba un programa Lex para verificar si la string dada es Palindrome o no.

Explicación:
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 lexer en el lenguaje de programación C.

Descripción: Se dice que una cuerda es palíndromo si el reverso de la cuerda es igual a la cuerda. Por ejemplo, «abba» es palíndromo, pero «abbc» no es palíndromo.

Ejemplos:

Input: Enter a string : naman 
Output: Given string is Palindrome

Input: Enter a string : geeksforgeeks
Output: Given string is not Palindrome 

Implementación:

/* Lex program to check whether 
     - given string is Palindrome or Not */
  
%
 {
    int i, j, flag;
    %
 }
  
/* Rule Section */
% %
    [a - z A - z 0 - 9]*
{
    for (i = 0, j = yyleng - 1; i <= j; i++, j--) {
        if (yytext[i] == yytext[j]) {
            flag = 1;
        }
        else {
            flag = 0;
            break;
        }
    }
    if (flag == 1)
        printf("Given string is Palindrome");
    else
        printf("Given string is not Palindrome");
}
% %
  
    // driver code
    int main()
{
    printf("Enter a string :");
    yylex();
    return 0;
}
  
int yywrap()
{
    return 1;
}

Producción:

Publicación traducida automáticamente

Artículo escrito por thakur_aman 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 *