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:51 (4 anni fa)] – [Esercizio 1] Massimo Torquati | informatica:sol:laboratorio21:esercitazionib:esercitazione1 [19/02/2021 alle 08:23 (4 anni fa)] (versione attuale) – [Esercizio 2] Alessio Conte | ||
---|---|---|---|
Linea 5: | Linea 5: | ||
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: | 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> | <code c> | ||
- | void strtoupper(const char* in, int len, char* out); | + | void strtoupper(const char* in, size_t |
</ | </ | ||
- | 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.1612896681.txt.gz · Ultima modifica: 09/02/2021 alle 18:51 (4 anni fa) da Massimo Torquati