aboutsummaryrefslogtreecommitdiffstats
path: root/lcc/tst/cf.c
diff options
context:
space:
mode:
Diffstat (limited to 'lcc/tst/cf.c')
-rwxr-xr-xlcc/tst/cf.c32
1 files changed, 32 insertions, 0 deletions
diff --git a/lcc/tst/cf.c b/lcc/tst/cf.c
new file mode 100755
index 0000000..1c9226a
--- /dev/null
+++ b/lcc/tst/cf.c
@@ -0,0 +1,32 @@
+/* cf - print character frequencies */
+float f[128];
+
+main(argc, argv)
+int argc;
+char *argv[];
+{
+ int i, c, nc;
+ float cutoff, atof();
+
+ if (argc <= 1)
+ cutoff = 0.0;
+ else
+ cutoff = atof(argv[1])/100;
+ for (i = 0; i <= 127; )
+ f[i++] = 0.0;
+ nc = 0;
+ while ((c = getchar()) != -1) {
+ f[c] += 1;
+ nc++;
+ }
+ printf("char\tfreq\n");
+ for (i = 0; i <= 127; ++i)
+ if (f[i] && f[i]/nc >= cutoff) {
+ if (i <= ' ')
+ printf("%03o", i);
+ else
+ printf("%c", i);
+ printf("\t%.1f\n", 100*f[i]/nc);
+ }
+ return 0;
+}