33 lines
		
	
	
		
			521 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
		
			521 B
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/* 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;
 | 
						|
}
 |