/*-------------------------------------------------------
【程序设计】
---------------------------------------------------------
题目:分别统计字符串中字母、数字、空格和其他字符出现的
次数(字符长度小于80)。
-------------------------------------------------------*/
#include <stdio.h>
void wwjt();
/*-全局变量,a用于保存字母个数、num用于保存数字个数
b用于保存空格个数、other用于保存其他字符字数*/
int a=0,num=0,b=0,other=0;
void count(char c[])
{
/**********Program**********/
for(int i=0;c[i]!='\0';i++)
{
if(((c[i]>='a')&&(c[i]<='z'))||((c[i]>='A')&&(c[i]<='Z')))
a+=1;
else if((c[i]>='0')&&(c[i]<='9'))
num+=1;
else if(c[i]==' ')
b+=1;
else
other+=1;
}
/********** End **********/
}
void main()
{
char ch[80];
printf ("input string:");
gets(ch);
count(ch);
printf ("a=%d num=%d b=%d other=%d\n",a,num,b,other);
wwjt();
}
void wwjt()
{
FILE *IN,*OUT;
int i;
char sin[80];
IN=fopen("in.dat","r");
if(IN==NULL)
{
printf("Please Verify The Currernt Dir..it May Be Changed");
}
OUT=fopen("out.dat","w");
if(OUT==NULL)
{
printf("Please Verify The Current Dir.. it May Be Changed");
}
for(i=0;i<5;i++)
{
a=0;
num=0;
b=0;
other=0;
fscanf(IN,"%s",&sin);
count(sin);
fprintf(OUT,"%d\n",a);
fprintf(OUT,"%d\n",num);
fprintf(OUT,"%d\n",b);
fprintf(OUT,"%d\n",other);
}
fclose(IN);
fclose(OUT);
}