Warning
This page is located in archive. Go to the latest version of this course pages. Go the latest version of this page.

HW 04 - Hledání textu v souborech

Termín odevzdání 25.03.2017 23:59 PDT 1)
Povinné zadání 3b
Volitelné zadání 4b
Bonusové zadání není
Počet uploadů 20

Povinné zadání

  • Bez použití knihovny <string.h> (nebo podobné) napište program, který ze zadaného souboru FILE vypíše všechny řádky obsahující řetězec PATTERN.
  • následně volán s argumenty ./grep PATTERN FILE.
  • Za konec řádku je považován znak '\n' (a tento znak není povážován za součást řádku).

Příklad 1

Očekávaný výstup Očekávaný chybový výstup Návratová hodnota
 $ ./grep "string.h" grep.c
 # kde grep.c je váš zdrojový soubor
žádný žádný 0

Příklad 2

PATTERN Vstupní soubor Očekávaný výstup Očekávaný chybový výstup Návratová hodnota
vzor
Tady je jeden vzor. A jeste jeden vzor.
A tady neni zadny.
Tady je jeden vzor. A jeste jeden vzor.
žádný 0

Příklad 3

PATTERN Vstupní soubor Očekávaný výstup Očekávaný chybový výstup Návratová hodnota
Vzor
Tady je jeden vzor. A jeste jeden vzor.
A tady neni zadny.
žádný žádný 0

Volitené zadání

Volitelné zadání rozšiřuje povinné zadání o precizované ošetření možných vstupů. Proto v případě jakékoli chyby vypište smysluplný důvod chyby na standardní chybový výstup a program bude ukončen s definovanou nenulovou návratovou hodnotou.

Chyby, které byste měli detekovat, jsou uvedeny v následující tabulce.

Chyby se musí vyhodnocovat v níže uvedeném pořadí. To znamená, že pokud se program zavolá jako

./grep ''
pak program vyhodnoti chybu podle prvního řádku a skončí (nikoli podle druhého řádku).

Chyba Očekávaný chybový výstup Návratová hodnota
Nejsou uvedeny oba arumenty
Error: Chybejici argument(y).
100
Argument PATTERN je prázdný. Můžete otestovat:
./grep '' soubor.c
Error: Prazdny PATTERN.
101
Neexistující vstupní soubor.
Error: Soubor nelze otevrit.
102
Nepodařilo se dynamicky alokovat paměť.
Error: Alokace pameti selhala.
200

Odevzdávané soubory a kompilace

Odevzdávejte pouze jeden soubor:

  • grep.c - implementace jednoduchého programu pro hledání řetězce v textových souborech (obsahuje funkci main)
Povinné zadání Volitelné zadání
Název v BRUTE HW04
Kompilace pomocí gcc -std=c99 -Werror -Wall -pedantic
courses/b3b36prg/hw/hw04.txt · Last modified: 2017/03/14 18:54 by vanapet1