/* Código escrito por Yuri de oliveira Gomes Figueiredo Descrição:Calcula a ocorrencia de caracteres ASCII em um arquivo e imprime na tela. */ /* Arquivos de biblioteca */ #include #include #include /* Prototipo das funções */ void som(char *arquivo); /* Função principal que consiste no calculo dos caracteres*/ void imp(unsigned long int *vetor); /*Função que impreme caracteres na tela*/ void limp(unsigned long int *vetor,unsigned long int x,unsigned long int y); /* Função necessária para inicializar variáveis do vetor */ /* Inicio do programa */ int main(int argc, char *argv[]) { if(argc<2){ printf("Falta de argumentos\n"); exit(0); } som(argv[1]); return 0; } void som(char *arquivo) { FILE*fp=fopen(arquivo,"rb"); unsigned long int vetor[225]; unsigned char c; limp(vetor,0,225); if(fp==NULL){ printf("Erro ao abrir o arquivo\n"); exit(1); } for(vetor[getc(fp)]+=1;!feof(fp);vetor[(unsigned char)getc(fp)]+=1); fclose(fp); imp(vetor); } void imp(unsigned long int *vetor) { int i; for(i=0;i<=225;i++){ printf("Contagem de %i:%lu\n",i,*vetor++); getchar(); } } void limp(unsigned long int *vetor,unsigned long int x,unsigned long int y) { do{ *vetor=x; vetor++; }while(y--); }