Skip to content
Related Articles

Related Articles

Lex program to count words that are less than 10 and greater than 5

Improve Article
Save Article
  • Difficulty Level : Hard
  • Last Updated : 19 Mar, 2022
Improve Article
Save Article

Problem: Write a Lex program to count words that are less than 10 and greater than 5.
Explanation: 
Lex is a computer program that generates lexical analyzers. Lex reads an input stream specifying the lexical analyzer and outputs source code implementing the lexer in the C programming language.
The commands for executing the lex program are: 
 

lex abc.l (abc is the file name)
cc lex.yy.c -lfl
./a.out

Let’s see Lex Program to count words that are less than 10 and greater than 5.
Examples: 
 

Input: geeksforgeeks hey google test lays
Output: 1 

Below is the implementation:
 

C




/*lex code to count words that are less than 10
    - and greater than 5 */
 
    %{
      int len=0, counter=0;
    %}
     
    %%
    [a-zA-Z]+ { len=strlen(yytext);
                if(len<10 && len>5)
                  {counter++;} }
    %%
     
    int yywrap (void )
     {
        return 1;
     }
     
    int main()
     {
      printf("Enter the string:");
      yylex();
      printf("\n %d", counter);
      return 0;
     }

Output:
 

 

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!