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