01: // passaggio array ad una funzione
02: #include<stdio.h>
03: #include<stdlib.h>
04: #include<string.h>
05: #include<ctype.h>
06: 
07: // questa funzione prende in ingresso una stringa e la converte in maiuscolo
08: void uppercase(char []); // la funzione prende in ingresso un array di char, si noti che e' del tutto inutile indicare le dimensioni
09: 
10: 
11: int main(int argc, char **argv){
12: 
13:   char testo[1000]; // array in cui memorizzero' la stringa, sto largo per sicurezza
14: 
15:   printf("Inserisci una frase: ");
16:   scanf("%[^\n]", testo);
17: 
18:   printf("DEBUG: la frase inserita e' [%s] ed e' costituita da %lu caratteri ed e' memorizzata in un array di %lu char\n", testo, strlen(testo), sizeof(testo));
19: 
20:   uppercase(testo);
21: 
22:   printf("Dopo la chiamata di funzione la frase e' diventata [%s]\n", testo);
23: 
24: 
25: 
26:   return 0;
27: }
28: 
29: 
30: 
31: 
32: 
33: // NOTA: non sto passando un array generico ma una stringa, grazie alla strlen() e' semplice sapere quanto 
34: // e' lunga
35: void uppercase(char mystr[]) 
36: {
37:   printf("DEBUG: la frase passata alla funzione e' [%s] ed e' costituita da %ld caratteri. Il parametro della funzione ha dimensione %ld byte\n", mystr, strlen(mystr), sizeof(mystr));
38: 
39:   for(int i=0; i<strlen(mystr); ++i)
40:     mystr[i] = toupper(mystr[i]);
41: }
42: 


Se avete commenti o osservaƶioni su questa pagina
mandate un messaggio di posta elettronica a bertoƶƶi@ce.unipr.it