#include <stdio.h>
int* conta(char *nome)
{
FILE *p;
char a[21];
int *vett,i;
p = fopen(nome,"r");
vett = (int *) calloc((z-a+1),sizeof(int)); /*allocazione dinamica !!!*/
while (fscanf(p,"%s",a)!=EOF)
if (strlen(a) > 6)
for (i = 0; i < strlen(a); ++i)
++vett[a[i]-a];
return vett;
}
main()
{ /* programma principale di prova (non richiesto) */
int *v,i;
v = conta("dati1.txt");
for (i = a; i <= z; ++i)
if (v[i-a])
printf("Ci sono %d occorrenze del carattere %c \n",v[i-a],i);
}
Contatore
Programma che legge da file una sequenza di parole con lunghezza massima di 20. Le parole sono separate tra di loro da spazi e/o ritorni a capo.
Il programma prende come parametro il nome del file e restituisce il numero di occorrenze dei caratteri componenti solo le parole lunghe più di sei lettere.
Ad esempio, considerando il seguente file:
questo file contiene due parole significative
La funzione restituirà al programma chiamante la seguente informazione: c : 2, o : 1, n : 3, t : 2, i : 5, e : 3, s : 1, g : 1, f :1, a : 1, v : 1.