Write a C program which reads the standard input and extract

Write a C program which reads the standard input and extract HTML-style tags from it. We consider that the HTML-style tags are all strings starting with character “less-than” (<) and end with the character “greater-than” (>). In case that there is a tag starting with ‘<’ but not finishing with ‘>’ at all, then print it all the way to the end of input. Each tag should start at a new line. Input The input is in a free textual form. Output The output consists of a list of tags in the order that they appear in text. Each tag should start on a new line. All content of a tag should be printed in the same way as it appears in input. If a tag is not finished, it should still be printed. The sample input and output below illustrate behaviour of the program.

Hint : The program should read input character by character and immediatelly produce output or not based on the context.

Hint : you can use getchar() and putchar() OR scanf() and prinf()

Sample Input:

Sample Output:

Solution

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
    char data[50][50];
    int c, nr = 0, nc = 0, t = 0;
    char temp[600];
    //Asks for number or row data to be inputted
    strcpy(temp, \"\");
    printf(\"\ Enter the data: \");
    do
    {
        fflush(stdin);
        //%[^\ ]s for new line character (\ )
        scanf(\"%[^\ ]s\", data[nr]);
        t = strlen(data[nr]);
        strcat(temp, data[nr]);
        strcat(temp, \" \");
        if(data[nr][t-1] == \'.\')
            break;
            nr++;
    }while(1);
    nc = strlen(temp);
    printf(\"\ Enter data: \ \");
        for(c = 0; c < nc; c++)
        {
            //if it is a < symbol or / symbol

            if(temp[c] == \'<\' || temp[c+1] == \'/\' )
            {
                //Loops till > character
                do
                {
                    fflush(stdout);
                    putchar(temp[c]);
                    c++;
                }while(temp[c] != \'>\' && temp[c-1]!= \'.\');
                //Adds a > symbol because it is excluded in the above
                putchar(\'>\');
                printf(\"\ \");
            }
        }
}


Output:

Enter the data: This is sample intermediate text <a tag> and </another tag>
another example. <a tag may contain < character > and > character
may appear outside of a tag. <a tag can
go for
multiple lines> and also <a tag may
not be
finished...

Enter data:
<a tag>
</another tag>
<a tag may contain < character >
<a tag can go for multiple lines>
<a tag may not be finished.>

Write a C program which reads the standard input and extract HTML-style tags from it. We consider that the HTML-style tags are all strings starting with charact
Write a C program which reads the standard input and extract HTML-style tags from it. We consider that the HTML-style tags are all strings starting with charact

Get Help Now

Submit a Take Down Notice

Tutor
Tutor: Dr Jack
Most rated tutor on our site