Open In App

Lex program to search a word in a file

Last Updated : 11 Jul, 2025
Comments
Improve
Suggest changes
Like Article
Like
Report
Problem: Write a Lex program to search a word in a file. Explanation: 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. Examples:
Input: welcome to geeksforgeeks 
Output: welcome 
FOUND
 
for 
NOT FOUND

geeksforgeeks
FOUND 
Approach: 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: C
/* Lex program to search a word in a file */

%{
 /* Definition section */
#include<string.h>
void check(char *);
%}

/* Rule Section */
%%
[a-zA-Z]+ check(yytext);
%%

// driver code
int main()
{
    // The function that starts the analysis 
    yylex();
    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("FOUND\n");
            return;
        }
       
    }
    printf("NOT FOUND\n");
        return;
}
Output:

Similar Reads