#include <stdio.h>
#include <stdlib.h> // exit()
#include <ctype.h> // isgraph()
void readfreq(FILE *file, int *table) {
for (; c
!= EOF
; c
= fgetc(file
)) table[c]++;
}
int main(int argc, char **argv) {
int table[256] = { 0 };
FILE
*file
= argc
== 2 ? fopen(argv
[1], "r") : stdin
;
readfreq(file, table);
for (int i = 0; i < 256; i++)
if (table[i] > 0)
: "0x%02x => %d\n",
i, table[i]);
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CiNpbmNsdWRlIDxzdGRsaWIuaD4gLy8gZXhpdCgpCiNpbmNsdWRlIDxjdHlwZS5oPiAvLyBpc2dyYXBoKCkKCnZvaWQgcmVhZGZyZXEoRklMRSAqZmlsZSwgaW50ICp0YWJsZSkgewogICAgaW50IGMgPSBmZ2V0YyhmaWxlKTsKCiAgICBmb3IgKDsgYyAhPSBFT0Y7IGMgPSBmZ2V0YyhmaWxlKSkKICAgICAgICB0YWJsZVtjXSsrOwp9CgppbnQgbWFpbihpbnQgYXJnYywgY2hhciAqKmFyZ3YpIHsKICAgIGludCB0YWJsZVsyNTZdID0geyAwIH07CiAgICBGSUxFICpmaWxlID0gYXJnYyA9PSAyID8gZm9wZW4oYXJndlsxXSwgInIiKSA6IHN0ZGluOwoKICAgIGlmICghZmlsZSkgcGVycm9yKCJFcnJvciIpLCBleGl0KDEpOwoKICAgIHJlYWRmcmVxKGZpbGUsIHRhYmxlKTsKCiAgICBmb3IgKGludCBpID0gMDsgaSA8IDI1NjsgaSsrKQogICAgICAgIGlmICh0YWJsZVtpXSA+IDApCiAgICAgICAgICAgIHByaW50Zihpc2dyYXBoKGkpID8gIiclYycgID0+ICVkXG4iCiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDogIjB4JTAyeCA9PiAlZFxuIiwKICAgICAgICAgICAgICAgICAgIGksIHRhYmxlW2ldKTsKCiAgICByZXR1cm4gMDsKfQ==
I2luY2x1ZGUgJmx0O3N0ZGlvLmgmZ3Q7CiNpbmNsdWRlICZsdDtzdGRsaWIuaCZndDsKI2luY2x1ZGUgJmx0O2N0eXBlLmgmZ3Q7Cgp2b2lkIHJlYWRmcmVxKEZJTEUgKmZpbGUsIGludCAqdGFibGUpIHsKICAgIGludCBjID0gZmdldGMoZmlsZSk7CgogICAgZm9yICg7IGMgIT0gRU9GOyBjID0gZmdldGMoZmlsZSkpCiAgICAgICAgdGFibGVbY10rKzsKfQoKaW50IG1haW4oaW50IGFyZ2MsIGNoYXIgKiphcmd2KSB7CiAgICBpbnQgdGFibGVbMjU2XSA9IHsgMCB9OwogICAgRklMRSAqZmlsZSA9IGFyZ2MgPT0gMiA/IGZvcGVuKGFyZ3ZbMV0sICZxdW90O3ImcXVvdDspIDogc3RkaW47CgogICAgaWYgKCFmaWxlKSBwZXJyb3IoJnF1b3Q7RXJyb3ImcXVvdDspLCBleGl0KDEpOwoKICAgIHJlYWRmcmVxKGZpbGUsIHRhYmxlKTsKCiAgICBmb3IgKGludCBpID0gMDsgaSAmbHQ7IDI1NjsgaSsrKQogICAgICAgIGlmICh0YWJsZVtpXSAmZ3Q7IDApCiAgICAgICAgICAgIHByaW50Zihpc2dyYXBoKGkpID8gJnF1b3Q7JyVjJyAgPSZndDsgJWRcbiZxdW90OwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICA6ICZxdW90OzB4JTAyeCA9Jmd0OyAlZFxuJnF1b3Q7LAogICAgICAgICAgICAgICAgICAgaSwgdGFibGVbaV0pOwoKICAgIHJldHVybiAwOwp9Cg==
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
void readfreq(FILE *file, int *table) {
int c = fgetc(file);
for (; c != EOF; c = fgetc(file))
table[c]++;
}
int main(int argc, char **argv) {
int table[256] = { 0 };
FILE *file = argc == 2 ? fopen(argv[1], "r") : stdin;
if (!file) perror("Error"), exit(1);
readfreq(file, table);
for (int i = 0; i < 256; i++)
if (table[i] > 0)
printf(isgraph(i) ? "'%c' => %d\n"
: "0x%02x => %d\n",
i, table[i]);
return 0;
}