Proszę napisać program dehtml do usuwania z dokumentów tekstowych (pliku stdin) znaczników języka HTML. Znaczniki te są zawsze zawarte w nawiasach kątowych, np. <br> albo
<a href="http://diablo.ict.pwr.wroc.pl/downloads/xdemo32_old.zip"> i nigdy nie powinny być wyświetlane na wyjściu. Cała reszta tekstu wejściowego (między znacznikami) powinna być wypuszczana bez zmian na wyjście stdout.

Dodatkowo, po uruchomieniu programu w podstawowej wersji, należy zaimplementować następujące opcjonalne argumenty wywołania programu.

Gdy program dehtml zostanie wywołany z argumentami „-i plik1” to powinien czytać dane z pliku plik1, zamiast z wejścia (stdin).

Gdy program zostanie wywołany z argumentami „-o plik2” to powinien wypuszczać przetworzone wiersze na plik2, zamiast na wyjście (stdout).

Jeśli w wywołaniu zostanie użyty argument opcjonalny „-b” to program powinien wysłać na wyjście tylko część pliku wejściowego zawartego między znacznikami <body> i </body>, a także upewnić się, że przed <body> wystąpił znacznik <html> (nazwy znaczników mogą być pisane małymi lub dużymi literami, i są tak samo poprawne). Dokument HTML powinien zawierać te znaczniki, i prawdziwa treść dokumentu jest zawarta pomiędzy <body> i </body>, zatem z opcją „-b” nasz program dehtml wyświetla tylko tekst zawarty w zasadniczej treści dokumentu HTML (pominięte zostaną rozmaite nagłówki).

Użycie argumentu opcjonalnego „-t” powinnno uruchomić w programie mechanizm translacji pięciu symbolicznych nazw znaków specjalnych HTML'a:

sekwencję zamień na
&lt; <
&gt; >
&amp; &
&quot;
&nbsp; (zwykłą spację)

Wywołanie programu z innymi argumentami opcjonalnymi, albo niepoprawne użycie powyższych argumentów (np. brak nazwy pliku po „-i”) powinno spowodować wyświetlenie komunikatu o błędzie i zakończenie programu.

Do dekodowania argumentów można użyć funkcji systemowej getopt, albo użyć schematu czytania argumentów wywołania programu przedstawionego na wykładzie (wersja piąta programu wiz).