用c语言编写一段程序实现统计文本文件(纯英文)的字符数或者单词数。空格,水平制表符,换行符均算字符。由空格或逗号分割开的都视为单词,且不做单词的有效性校验,例如:thi#,that视为用逗号隔开的2个单词。
时间: 2024-05-13 12:15:54 浏览: 166
以下是一个统计文件字符数的 C 语言程序:
```c
#include <stdio.h>
int main() {
char filename[100];
printf("请输入文件名:\n");
scanf("%s", filename);
FILE* fp = fopen(filename, "r");
if (fp == NULL) {
printf("无法打开文件\n");
return 0;
}
int count = 0;
char ch;
while ((ch = fgetc(fp)) != EOF) {
count++;
}
fclose(fp);
printf("文件 %s 的字符数为 %d\n", filename, count);
return 0;
}
```
以下是一个统计文件单词数的 C 语言程序:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
char filename[100];
printf("请输入文件名:\n");
scanf("%s", filename);
FILE* fp = fopen(filename, "r");
if (fp == NULL) {
printf("无法打开文件\n");
return 0;
}
int count = 0;
char ch;
int is_word = 0;
while ((ch = fgetc(fp)) != EOF) {
if (ch == ' ' || ch == '\t' || ch == '\n' || ch == ',') {
if (is_word) {
count++;
is_word = 0;
}
} else {
is_word = 1;
}
}
fclose(fp);
printf("文件 %s 的单词数为 %d\n", filename, count);
return 0;
}
```
需要注意的是,这些程序只能处理纯英文文件,对于包含其他语言或特殊字符的文件可能会出现错误的统计结果。
阅读全文