Limbaje de programare: Laborator 11

La intrarea în laborator trebuie predată tema 11.
Pentru laborator trebuie învățate câteva tipare de bază de lucru cu tablouri, șiruri și pointeri.

Fișiere

  1. Implementați o versiune simplă a programului Unix grep care afișează toate liniiile dintr-un fișier cu numele dat pe linia de comandă care conțin un cuvânt dat tot pe linia de comandă
    a) ca și cuvânt de sine stătător
    b) ca subșir oriunde în linie
    Puteți folosi funcția char *strstr(const char *big, const char *little) care caută al doilea parametru șir în primul, și returnează adresa unde a fost gșsit, sau NULL în caz contrar. Puteți trata doar liniile mai scurte decât o limită fixată în program.
  2. Implementați o versiune simplă a programului Unix strings care afișează toate șirurile dintr-un fișier binar formate din cel puțin 4 caractere tipăribile consecutive (cod ASCII > 32 și < 127).
  3. Implementați o versiune simplă a programului Unix split care împarte un fișier cu numele dat pe linia de comandă în fișiere de aceeași dimensiune (dată tot pe linia de comandă), cu numele xaa, xab, ..., xba, xbb, ... .
  4. Implementați o versiune simplă a programului UNIX cut care primește pe linia de comandă un interval de numere de forma M-N și tipărește câmpurile de la M la N inclusiv de pe fiecare linie a fișierului, caracterul separator dintre câmpuri (de exemplu virgula) fiind specificat tot pe linia de comandă.
  5. Un fișier bitmap cu 3 octeți pe pixel conține în antetul de 54 de octeți, ca numere fără semn pe 32 de biți: dimensiunea fișierului, la deplasamentul 2, și dimensiunile imaginii la deplasamentul 18, și respectiv 22. Verificați că cele 3 dimensiuni sunt consistente între ele și cu dimensiunea reală a fișierului.
  6. Scrieți un program care elimină comentariile dintr-un program C. Numele fișierului în care se scrie rezultatul e format din numele fișierului inițial (dat pe linia de comandă) adăugând extensia .pp.
  7. Scrieți un program care primește pe linia de comandă un argument de forma -Dșir1=șir2 și un nume de fișier și înlocuiește în fișierul dat fiecare apariție a șirului șir1 cu șir2. Numele fișierului în care se scrie rezultatul e format din numele fișierului inițial (dat pe linia de comandă) adăugând extensia .pp.

Marius Minea
Last modified: Tue Dec 4 16:30:00 EET 2012