#include<stdlib.h>
#include<stdio.h>
#include<ctype.h>
#include<math.h>
int main(int argc,char*argv[])
{
FILE*f;
char ch, chp;
int alfabeto[26];
int i, totaleparole=0, interr=0, escl=0, sosp=0, norm=0,ripetopunto=0;
if(argc!=2)
{
printf(“numero di parametri errato\n”);
exit(1);
}
for(i=0;i<=26;i++)
alfabeto[i]=0;
f=fopen(argv[1],”r”);
if(f==NULL)
{
printf(“impossibile aprire il file\n”);
exit(1);
}
chp=’_';
while( ((ch=fgetc(f))!= EOF) )
{
if( chp==’_’ || (isspace(chp) && !isspace(ch)) )
{
totaleparole++;
i=toupper(ch)-’A';
alfabeto[i]++;
}
else if( ispunct(chp) && isspace(ch) )
{
if(chp==’?')
interr++;
else if(chp==’!')
escl++;
else if(chp==’.’ && isspace(ch) && !iscntrl(ch))
norm++;
}
else if(ch==’.’ && chp==’.')
{
ripetopunto++;
if(ripetopunto%2==0)
sosp++;
}
chp=ch;
}
for(i=0;i<=26;i++)
{
if(alfabeto[i]!=0)
{
printf(“%c = %.1f %\n”, i+’A', ((float)alfabeto[i]*100)/(float)totaleparole );
}
}
printf(“frasi interrogative: %d\nfrasi escalmative: %d\nfrasi sospensive: %d\nfrasi normali: %d\n”, escl, interr, sosp, norm);
exit(0);
}
