======== HW 11 - Zpracování strukturovaného textu ======== ^ Termín odevzdání | 07.01.2022 22:00 PT | ^ Bodový zisk | 6b (3+3) | ^ Počet uploadů | 10 | ^ Typ zadání | volitelné | Cílem úlohy je provést analýzu strukturovaného textu (XML) ve formě textového souboru obecné délky na standardním vstupu programu. V úloze uvažujeme pouze slova bez diakritiky. ===== Zadání ===== * Ze standardního vstupu přečtěte textový soubor obecné velikosti. * Informace v textovém souboru je strukturována pomocí XML značek. * XML značky jsou párové (např. , ) nebo nepárové (např. , ). Ve vstupním textu se mohou objevit oba druhy. * Párovost / nepárovost značek zde není určena definicí, ale pouze zápisem (tj. kombinací znaků '<', '>' a '/'). * Ověřte, že text je správně strukturován (validní). ===== Příklady ===== ==== Příklad 1 - pub00 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ | | text nevalidni | 100 | ==== Příklad 2 - pub01 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ | 10 ahoj svete | pocet tagu: 5 text validni | 0 | ==== Příklad 3 - pub02 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ |
10 20
| pocet tagu: 7 text validni | 0 | ===== Bonusové zadání ===== * XML značky ve vstupním textu obsahují parametry (např. ). * Mezi názvem značky a parametrem je právě jedna mezera, za názvem parametru následuje znak '=' a hodnota parametru v uvozovkách. * V textu se mohou vyskytovat specialni XML značky , a . Vypočtěte výraz definovaným XML dokumentem. ===== Příklady ===== ==== Příklad 1 - pub03 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ |
10 20
| pocet tagu: 7 text validni | 0 | ==== Příklad 1 - pub04 ==== ^ Standardní vstup (stdin) ^ Očekávaný výstup (stdout) ^ Návratová hodnota ^ | | a=-10 b=30 pocet tagu: 8 text validni | 0 | (Další příklady jsou v poskytnutém archivu.) ===== Odevzdání ===== Veřejné příklady + Makefile: {{ {{ :courses:b0b99prpa:hw:hw11_-_xml.zip |}} ^ ^ Povinné zadání ^ ^ Název v BRUTE | HW11 | ^ Odevzdávané soubory | main.c | ^ Kompilace pomocí | clang -pedantic -Wall -Werror -std=c99 |