Esercizio 3

Attenzione!!!

Non si possono usare le funzioni della libreria strings.h e string.h. Le funzioni necessarie devono essere realizzate dallo studente.

Scadenza: 21-06-2004

Word-count

Scrivere un programma che legga un file di testo specificato dall'utente, e stampi su video il numero di righe, di parole e di lettere contenuti nel file. Valgono le seguenti definizioni:
isspace(c) ritorna vero (=nonzero) se c e` uno spazio.

Esempio
Se il file pippo.txt ha il contenuto seguente
\n
\n
Pippo   pluto e\n
Paperino\n
\n
vanno a spasso 5\n

(gli \n sono ritorni a capo) il programma deve contare 32 lettere, 8 parole e 3 righe.
Il nome del file viene introdotto da tastiera dall'utente.

Punto di partenza: readlines.c . Il programma readlines.c fa uso della funzione fgets la cui desczione si trova qua .

Word-replace

Scrivere un programma che legge un file di "comandi" ed un file di dati, scrivendo poi un file di risultati secondo le indicazioni seguenti.
Il file di comandi contiene su ogni riga due parole (non ci sono spazi all'interno di una parola, ed ogni cosa scritta sulla stessa riga dopo le prime due parole viene ignorata come un commento). Ognuna di queste coppie di parole A e B codifica una sostituzione da fare sul file di dati, nel quale la parola A viene sostituita dalla parola B. Il file dati viene letto ma non sovrascritto; viene invece generato un file di risultati nel quale
Se il file di dati e` come nell'esempio precedente ed il file di comandi contiene
Pippo  Mario    -- e questo e` un commento che verra` ignorato!
Pluto Sergio
spasso ivrea

Il file di risultati dovra` contenere
*MARIO* *SERGIO* e\n
Paperino\n
vanno a *IVREA*

I nomi dei tre file vengono introdotti da tastiera dall'utente.