#include <stdio.h>
#include <stdlib.h>

#define NFI "id.bin"
#define NFS "sostituzioni.bin"
#define NFO "finale.txt"
#define L   ('c'-'a'+1)

typedef FILE* pfile;
typedef char* pchar;
typedef unsigned* pu;

void perc(pchar nf,pu p)
 {unsigned i,t;
  for(t=i=0;i<L;t+=p[i++]);
  printf("Percentuali del file %s:\n",nf);
  for(i=0;i<L;i++) printf("%c->%.1f%%\n",i+'a',(100.0*p[i])/t);
 }

int main(void)
 {pfile fi,fs,fo;
  char  c;
  unsigned i,ni[L],nt[L];

  if ((fi=fopen(NFI,"rb"))==NULL) goto file_err;
  if ((fs=fopen(NFS,"rb"))==NULL) goto file_err;
  if ((fo=fopen(NFO,"w"))==NULL) goto file_err;

  for(i=0;i<L;i++) ni[i]=nt[i]=0;
  for(;;)
   {fread(&c,1,1,fi);
    switch (c)
     {case 'l':  do fread(&c,1,1,fs); while(c&&((c<'a')||(c>'c')));
                 if (!c) goto file_err; 
                 break;
      case 'a':
      case 'b':
      case 'c':  ni[c-'a']++;
     }
    if (c) {nt[c-'a']++; fprintf(fo,"%c",c);}
    else break;
   }
  fclose(fi);fclose(fo);fclose(fs);
  perc(NFI,ni);
  perc(NFO,nt);
  return EXIT_SUCCESS;

  file_err: printf("Problemi coi files!\n"); return EXIT_FAILURE;  
 }
