Non è solo una buona idea: la fopen necessaria per poter aprire un file e leggerlo.
l'apertura di un file in lettura si fa così
Si spera che il file sia nel posto giusto.codice:FILE * input; //dichiarazione di un "puntatore a file" if ((input =fopen ("file.txt","r"))==NULL){ fprintf (stderr,"errore - file non trovato: %s","file.txt"); return -1; }
mentre la scansione carattere per carattere si fa così
EOF è il carattere di fine file.codice:#include <ctype.h> #define SHIFT 97 char c=' '; int occorrenze [26]; while ((c=fgetc(input))!=EOF) if (tolower(c)>=97)&&(tolower(c)<=122) occorrenze[tolower(c)-97]++; /*la costante SHIFT varebbe 65 se avessi usato la funzione toupper al posto della tolower*/
con la condizione nell'if controllo che il carattere sia nell'intervallo a-z, così scarto i caratteri di separazione e i newline.
il vettore delle occorrenze deve contenere 26 elementi.
Una cosa importante: procuarti al più presto un manuale di C, questo problema si risolve con tecniche standard che si imparano sui libri, non dovrebbe essere necessario pensare più di tanto alle funzioni da usare.
Ciao!

Rispondi quotando