Strumenti Utente

Strumenti Sito


informatica:sol:laboratorio16:esercitazionia:esercitazione2

Questa è una vecchia versione del documento!


Esercitazione 2

Stringhe e libreria standard di IO, creazione di librerie statiche.

Cercare di completare tutti gli esercizi durante le ore di laboratorio e nel caso come homework.

Esercizio 1: tokenizer

Scrivere un programma che data una stringa come argomento, stampi a video ('stdout') le parole contenute nella stringa in input una per linea. Usare la funzione di libreria 'strtok'. Per realizzare il programma implementare la funzione 'tokenizer' con la seguente segnatura:

void tokenizer(char *stringa, FILE *out);

Testare il programma con i seguenti casi (supponiamo che l'eseguibile si chiami es1):

./es1 "ciao mondo"
./es1
./es1 "questa e' una stringa di alcune parole!"
./es1 questa è un\'altra stringa

Esercizio 2: tokenizer_r

Scrivere una seconda versione del programma precedente che implementa la funzione 'tokenizer_r' che ha la stessa identica interfaccia ma che utilizza al suo interno 'strtok_r'. Quali sono le principali differenze tra 'tokenizer' e 'tokenizer_r' ? (Suggerimento: partire dall'analisi accurata del 'man' di 'strtok_r').

NOTA: se si compila con '-std=c99' per evitare il warning implicit declaration of function 'strtok_r'… aggiungere la seguente opzione di compilazione '-D_POSIX_C_SOURCE=199309L'.

Esercizio 3

Inserire nel file 'tokenizer.h' l'interfaccia delle due funzioni 'tokenizer' e 'tokenizer_r' come descritte precedentemente. Inserire nel file 'tokenizer.c' l'implementazione delle due funzioni. Creare quindi una librerie statica 'libtokenizer.a' e riscrivere il programma dell'esercizio precedente in modo che il programma main includa il file 'tokenizer.h' e linki la libreria.

informatica/sol/laboratorio16/esercitazionia/esercitazione2.1456769793.txt.gz · Ultima modifica: 29/02/2016 alle 18:16 (9 anni fa) da Massimo Torquati

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki