Skip to content
Related Articles
Open in App
Not now

Related Articles

Lex code to replace a word with another word in a file

Improve Article
Save Article
  • Last Updated : 30 Sep, 2022
Improve Article
Save Article

Given a text file as input, the task is to replace a given word with another word in the file.

Lex is a computer program that generates lexical analyzers and was written by Mike Lesk and Eric Schmidt.
Lex reads an input stream specifying the lexical analyzer and outputs source code implementing the lexer in the C programming language.

Prerequisite: Flex (Fast lexical Analyzer Generator)

As we know, yytext holds the value of current matched token, we can compare it with word to replace. if the value of yytext and word to replace are same, replace the word with another word and write it to the output file otherwise simply copy the content of input file to output file.

Input File: input.txt

Below is the implementation of above approach:

/* LEX code to replace a word with another
   taking input from file */
/* Definition section */
/* variable replace_with and replace can be 
   accessed inside rule section and main() */
char replace_with [] = "Best";
char replace [] ="A";
/* Rule Section */
/* Rule 1 compares the matched token with the
   word to replace and replaces with another word
   on successful match else simply writes the
   content of input file to output file */
/* Rule 2 matches everything other than string
   like whitespace, digits, special symbols etc 
   and writes it to output file */
[a-zA-Z]+    { if(strcmp(yytext, replace)==0)
                   fprintf(yyout, "%s", replace_with);
                    fprintf(yyout, "%s", yytext);}
.            fprintf(yyout, "%s", yytext);
int yywrap()
    return 1;
/* code section */
int main()
        extern FILE *yyin, *yyout;
        /* open the input file
           in read mode */
    yyin=fopen("input.txt", "r");
        /* open the output file
           in write mode */
    yyout=fopen("output.txt", "w");


Output file: output.txt

My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!