count char

Run Settings
LanguageC
Language Version
Run Command
#define _CRT_SECURE_NO_WARNINGS #include <ctype.h> #include <math.h> #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { char ch; int count; } Pair; int comp(const void *pa, const void *pb) { Pair a = *(Pair *)pa; Pair b = *(Pair *)pb; if (a.count > b.count) return -1; if (a.count < b.count) return 1; return 0; } void pretty_print_char(char c) { switch (c) { case '\0' : printf(" \\0"); break; case '\n' : printf(" \\n"); break; case '\r' : printf(" \\r"); break; case '\t' : printf(" \\t"); break; case '\f' : printf(" \\f"); break; case '\013': printf(" \\v"); break; case '\010': printf(" \\b"); break; case '\007': printf(" \\a"); break; case '\033': printf(" \\e"); break; case ' ' : printf(" ' '") ; break; case '\\' : printf(" \\\\"); break; case '\x7f': printf(" \\c?"); break; default: if (isgraph(c)) { printf("%4c", c); } else { printf("\\x%02x", (int)c); } } } int main(void) { Pair array[256]; for (int i = 0; i < 256; ++i) { array[i].ch = (char)i; array[i].count = 0; } char line[648]; if (fgets(line, sizeof line, stdin)) { int len = strlen(line); for (int i = 0; i < len; ++i) { array[(int)line[i]].count++; } qsort(array, 256, sizeof(Pair), comp); for (int i = 0; array[i].count; ++i) { pretty_print_char(array[i].ch); printf(": %3d, %5.2lf%%\n", array[i].count, array[i].count * 100.0 / len); } } return 0; }
Editor Settings
Theme
Key bindings
Full width
Lines