informatica:sol:laboratorio21:esercitazionib:esercitazione1
Differenze
Queste sono le differenze tra la revisione selezionata e la versione attuale della pagina.
| Entrambe le parti precedenti la revisioneRevisione precedenteProssima revisione | Revisione precedente | ||
| informatica:sol:laboratorio21:esercitazionib:esercitazione1 [09/02/2021 alle 18:38 (5 anni fa)] – [Esercizio 1] Massimo Torquati | informatica:sol:laboratorio21:esercitazionib:esercitazione1 [19/02/2021 alle 08:23 (5 anni fa)] (versione attuale) – [Esercizio 2] Alessio Conte | ||
|---|---|---|---|
| Linea 3: | Linea 3: | ||
| ===== Esercizio 1 ===== | ===== Esercizio 1 ===== | ||
| - | Scrivere una funzione C che prende in input come primo argomento una stringa e restituisce | + | Scrivere una funzione C che prende in input come primo argomento una stringa, come secondo argomento la lunghezza della stringa e restituisca |
| <code c> | <code c> | ||
| - | void strtoupper(const char* in, char** out); | + | void strtoupper(const char* in, size_t len, char* out); |
| </ | </ | ||
| - | Scrivere il programma main di test per la funzione ' | + | Scrivere il programma main di test per la funzione ' |
| ===== Esercizio 2 ===== | ===== Esercizio 2 ===== | ||
| Linea 14: | Linea 14: | ||
| Scrivere una funzione con nome ' | Scrivere una funzione con nome ' | ||
| <code c> | <code c> | ||
| - | const char *mystrcat(char* buffer, | + | char *mystrcat(char* buffer, |
| </ | </ | ||
| La funzione prende come parametri un buffer, la lunghezza del buffer in bytes ed almeno una stringa (il parametro formale ' | La funzione prende come parametri un buffer, la lunghezza del buffer in bytes ed almeno una stringa (il parametro formale ' | ||
| Linea 26: | Linea 26: | ||
| #include < | #include < | ||
| - | # | + | const int REALLOC_INC=16; |
| - | # | + | |
| - | < | + | void RIALLOCA(char** |
| - | + | < | |
| + | } | ||
| char* mystrcat(char *buf, size_t sz, char *first, ...) { | char* mystrcat(char *buf, size_t sz, char *first, ...) { | ||
| < | < | ||
| Linea 35: | Linea 36: | ||
| int main(int argc, char *argv[]) { | int main(int argc, char *argv[]) { | ||
| - | if (argc != 7) { printf(" | + | if (argc < 7) { printf(" |
| char *buffer=NULL; | char *buffer=NULL; | ||
| - | RIALLOCA(buffer, | + | RIALLOCA(&buffer, REALLOC_INC); |
| buffer[0]=' | buffer[0]=' | ||
| buffer = mystrcat(buffer, | buffer = mystrcat(buffer, | ||
| Linea 66: | Linea 67: | ||
| Se ci sono opzioni non riconosciute queste dovranno essere stampate a video | Se ci sono opzioni non riconosciute queste dovranno essere stampate a video | ||
| con il messaggio " | con il messaggio " | ||
| - | di libreria la funzione //strtol// (vedere man 3 strtol) | + | di libreria la funzione //strtol// (vedere man 3 strtol) |
| <code c> | <code c> | ||
| long isNumber(const char* s) { | long isNumber(const char* s) { | ||
informatica/sol/laboratorio21/esercitazionib/esercitazione1.1612895927.txt.gz · Ultima modifica: 09/02/2021 alle 18:38 (5 anni fa) da Massimo Torquati
