function Prototype
function Prototype
h>
#include <string.h>
#include <ctype.h>
//Function prototype
const char FILE_NAME[] = "homework06.txt";
#define MAX 26
#define LIMIT 10
int main()
{
int letters[MAX]={0};
int spaces=0;
int digits[LIMIT]={0};
int special=0;
getCount(letters,&spaces,digits,&special);
printSort(letters, digits);
return 0;
}
///////////////////////////////////
void getCount(int letters[],int *spaces,int digits[],int *special)
{
char c;
FILE * fp=fopen("c:\\temp\\source.txt","r");
while(!feof(fp))
{
c = fgetc(fp);
if (c == '—')
{
continue;
}
if(isalpha(c))
{
c = toupper(c);
letters[(c)-65]++;
}
else if (isdigit(c))
{
digits[c-'0']++;
}
else
{
*special++;
}
}
fclose(fp);
}
///////////////////////////////
void printUnsorted(int letters[],int digits[])
{
int current,walker,i;
for(i=0;i<26;i++)
{
printf("%c : %3d ", 'A'+i, letters[i]);
if (i%7 == 0)
{
printf("\n");
}
}
for(i=0;i<10;i++)
{
printf("%c : %4d", 'A'+i, digits[i]);
if(i%7 ==0)
{
printf("\n");
}
}
}
///////////////////////////////
void printSort(int letters[],int digits[])
{
int current,walker,i;
for(current=0;current<MAX;current++)
{
for(walker=MAX-1;walker > current;walker--)
{
if(letters[walker] < letters[walker-1])
{
swap(&letters[walker],&letters[walker-1]);
}
}
}
for(current=0;current<LIMIT;current++)
{
for(walker=LIMIT-1;walker > current;walker--)
{
if(digits[walker] < digits[walker-1])
{
swap(&digits[walker],&digits[walker-1]);
}
}
}
for(i=0;i<26;i++)
{
printf("%c : %3d ", 'A'+i, letters[i]);
if (i%7 == 0)
{
printf("\n");
}
}
for(i=0;i<10;i++)
{
printf("%c : %4d", 'A'+i, digits[i]);
if(i%7 ==0)
{
printf("\n");
}
}
}
/////////////////////////
void swap(int *x, int *y)
{
int c=*x;
*x=*y;
*y=c;
}