Funzioni e Array (Esempio 1)

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:

funzioni_array_1.c
/* 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: