用C语言编写代码实现频率统计,读入一个文件,文件中包含字母,数字,空格,标点符号等。请统计文件中的字 母,数字,空格和其他符号的数目,在屏幕上显示。给出完整代码
时间: 2024-09-10 20:04:30 浏览: 55
在C语言中,我们可以使用`stdio.h`库来读取文件并处理字符,以及`ctype.h`库来进行字符分类。以下是一个简单的程序,它会统计输入文件中字母、数字、空格和非字母数字字符的数量:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
FILE *file;
int alpha_count = 0, digit_count = 0, space_count = 0, other_count = 0;
// 打开文件
if ((file = fopen("input.txt", "r")) == NULL) {
printf("无法打开文件\n");
return 1;
}
char ch;
while ((ch = fgetc(file)) != EOF) {
// 检查并计数不同类型字符
if (isalpha(ch)) { // 字母
alpha_count++;
} else if (isdigit(ch)) { // 数字
digit_count++;
} else if (isspace(ch)) { // 空格
space_count++;
} else { // 其他字符(包括标点符号)
other_count++;
}
}
// 关闭文件
fclose(file);
printf("字母数量: %d\n", alpha_count);
printf("数字数量: %d\n", digit_count);
printf("空格数量: %d\n", space_count);
printf("其他字符(包括标点)数量: %d\n", other_count);
return 0;
}
```
在这个程序中,我们首先打开指定的文件(假设名为"input.txt"),然后逐个读取文件中的字符,使用`isalpha()`检查是否为字母,`isdigit()`检查是否为数字,`isspace()`检查是否为空格,其他的会被归类到"其他"类别。最后,关闭文件,并打印出各类字符的统计结果。
阅读全文