求代码,谢谢各位
写一个函数,传入一个字符串,统计其中字母、数字、分隔符(空格、tab符、回车)和其他字符的个数,通过形参传回。主函数要求读入一个文本文件中的所有内容作为字符串,交给上述函数进行统计,并在主函数中打印统计结果。输入文件见text.txt。谢谢
#include <stdio.h>
#include <stdlib.h>
void dis(char str[])
{
int i=0;
char letter,separator,number,other;
while(str[i++])
{
if(str[i]>='A' && str[i]<='Z' && str[i]>='a' && str[i]<='z')
{
letter++;
}
else if(str[i]=='\n' || str[i]==' ' ||str[i]==' ')
{
separator++;
}
else if(str[i]>='0' && str[i]<='9')
{
number++;
}
else
{
other++;
}
}
printf("字母的个数为:%d\n",letter);
printf("分隔符的个数为:%d\n",separator);
printf("数字的个数为:%d\n",number);
printf("其它的字符个数为:%d\n",other);
}
int main()
{
char letter,separator,number,other;
FILE* fpI=NULL;
char a[500]={'0'};
char FileA[20];
printf("要从哪个文件读入字符串?\n");
gets(FileA);
//FILE *fpI=NULL;
fpI=fopen(FileA,"rt");
if(fpI==NULL)
{
printf("输入文件打开失败");
exit(0);
}
if(fgets(a,sizeof(a),fpI)==NULL)
{
printf("字符串读取失败");
exit(0);
}
dis(a);
fclose(fpI);
return 0;
}
我这个不知道错哪里,求帮忙看看