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:36 (5 anni fa)] – [Esercizio 2] Massimo Torquati | informatica:sol:laboratorio21:esercitazionib:esercitazione1 [19/02/2021 alle 08:23 (5 anni fa)] (versione attuale) – [Esercizio 2] Alessio Conte | ||
|---|---|---|---|
| Linea 2: | Linea 2: | ||
| ===== Esercizio 1 ===== | ===== Esercizio 1 ===== | ||
| + | |||
| + | Scrivere una funzione C che prende in input come primo argomento una stringa, come secondo argomento la lunghezza della stringa e restituisca nel terzo argomento la stessa stringa con tutti i sui caratteri in maiuscolo: | ||
| + | <code c> | ||
| + | void strtoupper(const char* in, size_t len, char* out); | ||
| + | </ | ||
| + | |||
| + | Scrivere il programma main di test per la funzione ' | ||
| + | |||
| + | ===== Esercizio 2 ===== | ||
| 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 17: | 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 26: | 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 44: | Linea 54: | ||
| | | ||
| </ | </ | ||
| - | |||
| - | ===== Esercizio 1 ===== | ||
| - | |||
| - | Scrivere una funzione C che prende in input come primo argomento una stringa e restituisce nel secondo argomento la stessa stringa con tutti i sui caratteri in maiuscolo: | ||
| - | < | ||
| - | void strtoupper(const char* in, char** out); | ||
| - | </ | ||
| - | |||
| - | Scrivere il programma main di test per la funzione ' | ||
| ===== Esercizio 3 ===== | ===== Esercizio 3 ===== | ||
| 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.1612895774.txt.gz · Ultima modifica: 09/02/2021 alle 18:36 (5 anni fa) da Massimo Torquati
