/* @Filename: ex802.c @Author: Ju Chengdong @Version: 1.0 @Date: 2021-03-18 @Description: File Character Statistics */ #include<stdio.h> #include <stdlib.h> #include <string.h> int main(void){ int statisticsFromFile(int *num, char *fileName, char *mode); /* * 定义数组num,包含三个元素: * 第1个元素表示字母个数; * 第2个元素表示数字个数; * 第3个元素表示其他字符个数 */ int num[3]={0,0,0}; char fileName[] = "ex802.txt"; /*读取文件并分类统计字符个数*/ statisticsFromFile(num, fileName, "r"); /*输出显示各类字符个数*/ printf("letter:%d\n",num[0]); printf("number:%d\n",num[1]); printf("other:%d",num[2]); return 0; } /* * 函数名称:statisticsFromFile * 函数功能:读取文件并分类统计字符个数,统计结果保存在形参数组num中 * 形式参数:int *,一维整型数组首地址 * 形式参数:char *fileName,文件路径及名称 * 形式参数:char *mode,文件使用方式 * 返 回 值:int型,若文件打开异常,返回 -1;否则返回读取文件的字符数 */ int statisticsFromFile(int *num, char *fileName, char *mode){ // 请编程实现本函数 }
时间: 2023-07-29 17:13:22 浏览: 48
以下是函数 statisticsFromFile 的实现代码:
```
int statisticsFromFile(int *num, char *fileName, char *mode){
FILE *fp;
int count = 0;
char c;
fp = fopen(fileName, mode);
if(fp == NULL){
printf("Failed to open the file!\n");
return -1;
}
while((c = fgetc(fp)) != EOF){
if((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')){
num[0]++;
}
else if(c >= '0' && c <= '9'){
num[1]++;
}
else{
num[2]++;
}
count++;
}
fclose(fp);
return count;
}
```
该函数接受三个参数:一个整型数组 num,一个字符数组 fileName,和一个字符数组 mode。函数的功能是读取指定文件,并分类统计文件中字母、数字和其他字符的个数,统计结果保存在形参数组 num 中。函数返回读取的字符总数。
函数首先尝试以指定的使用方式 mode 打开指定的文件 fileName。如果打开文件失败,函数将会输出一条错误信息,并返回 -1。如果成功打开文件,则函数开始读取文件中的字符。
当读取到一个字符时,函数会判断该字符是否为字母、数字或其他字符。如果是字母,则将 num 数组中的第一个元素加 1;如果是数字,则将 num 数组中的第二个元素加 1;如果是其他字符,则将 num 数组中的第三个元素加 1。
最后,函数关闭文件并返回读取的字符总数。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![7z](https://img-home.csdnimg.cn/images/20210720083312.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![mp4](https://img-home.csdnimg.cn/images/20210720083504.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)
![doc](https://img-home.csdnimg.cn/images/20210720083327.png)