Skip to content
Related Articles

Related Articles

Improve Article

Lex program to search a word in a file

  • Last Updated : 30 Apr, 2019
Geek Week

Problem: Write a Lex program to search a word in a file.

FLEX (Fast Lexical Analyzer Generator) is a tool/computer program for generating lexical analyzers (scanners or lexers) written by Vern Paxson in C around 1987. Lex reads an input stream specifying the lexical analyzer and outputs source code implementing the lexer in the C programming language. The function yylex() is the main flex function which runs the Rule Section.


Input: welcome to geeksforgeeks 
Output: welcome 


To search a word, I have stored words in file named “input.txt” and used lex to receive words from keyboard. On receiving each word, I check it with the words in the file. If the word is found, the program prints “FOUND” else “NOT FOUND”.

Input File: input.txt (Input File used in this program)

Below is the implementation of program:

/* Lex program to search a word in a file */
 /* Definition section */
void check(char *);
/* Rule Section */
[a-zA-Z]+ check(yytext);
// driver code
int main()
    // The function that starts the analysis 
    return 0;
void check(char *str)
      /* fp as pointer 
    of File type */
    FILE *fp;
    char temp[30];
    /* fp points to the file input.txt 
    and opens it in read mode */
    fp=fopen("input.txt", "r");
    while((fscanf(fp, "%s", temp))!=EOF)
        if(!(strcmp(temp, str)))
    printf("NOT FOUND\n");


We provide nothing but the best curated videos and practice problems for our students. Check out the C Foundation Course and master the C language from basic to advanced level. Wait no more, start learning today!

My Personal Notes arrow_drop_up
Recommended Articles
Page :