User Tools

Site Tools


it:informatica:linguaggio_c:funzioni_e_array_1
Return to Home page

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:

  • riceve in ingresso un vettore di caratteri e la sua dimensione
  • trasformarmi tutte le lettere maiuscole presenti nel vettore in minuscole e viceversa
  • non esegue nessuna trasformazione sui caratteri non alfabetici
  • restituisce il numero di trasformazioni effettuate

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:


If you found any error, or if you want to partecipate to the editing of this wiki, please contact: admin [at] skenz.it

You can reuse, distribute or modify the content of this page, but you must cite in any document (or webpage) this url: https://www.skenz.it/it/informatica/linguaggio_c/funzioni_e_array_1?do=
/web/htdocs/www.skenz.it/home/data/pages/it/informatica/linguaggio_c/funzioni_e_array_1.txt · Last modified: 2020/11/26 23:18 (external edit)