Concetti:
Passaggio di array a funzioni (gli array in C vengono passati alle funzioni sempre per riferimento)
Testo:
Si realizzi una funzione che:
La funzione chiamante (main
) dovrà stampare il vettore trasformato e il numero di trasformazioni effettuate.
Soluzione:
/* Realizzare una funzione che riceve in ingresso un vettore di caratteri e la sua dimensione. La funzione deve trasformare tutte le lettere maiuscole in minuscole e viceversa. Non deve invece eseguire nessuna trasformazione sui caratteri non alfabetici. La funzione deve restituire il numero di trasformazioni effettuate. La funzione chiamante (main) dovra' stampare il vettore trasformato e il numero di trasformazioni effettuate. */ #include <stdio.h> #include <ctype.h> #define SIZE 8 int trasforma(char v[], int dim){ int i; int n_modifiche=0; for(i=0; i<dim; i++) if (isalpha(v[i])){ if (islower(v[i])) v[i] = toupper(v[i]); else v[i] = tolower(v[i]); n_modifiche++; } return n_modifiche; } int main(){ char vet[SIZE]={'a', 'B', 'C', '1', '?', 'x', 'Y', '*'}; int i; int n_trasf; n_trasf = trasforma(vet, SIZE); for(i=0; i<SIZE-1; i++) printf("%c ", vet[i]); printf("%c\n", vet[SIZE-1]); printf("Numero di trasformazioni effettuate: %d\n", n_trasf); return 0; }
Commenti: