c语言写一个统计文件中单词和字符个数的程序。在此,单词指的是仅由字母组成的串。诸如is7years这样的串按照两个单词计算。 【输入形式】 读取当前目录下文件in.txt,以统计该文件中单词和字符个数。 【输出形式】 输出输入文件中单词和字符个数,中间以一个空格分隔。 【样例输入】 in.txt的内容为: I am an (BeiHang)student. 【样例输出】 5 25 【样例说明】 该输入文件中共有5个单词(即I, am, an, BeiHang, student)及25个字符。
时间: 2024-02-11 15:09:42 浏览: 83
以下是一个简单的 C 语言程序实现:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
FILE *fp = fopen("in.txt", "r");
if (fp == NULL) {
printf("无法打开文件\n");
return 1;
}
int word_count = 0;
int char_count = 0;
int in_word = 0;
char ch;
while ((ch = fgetc(fp)) != EOF) {
if (isalpha(ch)) { // 判断是否为字母
char_count++;
if (!in_word) { // 如果之前不在单词中,说明进入了一个新单词
in_word = 1;
word_count++;
}
} else { // 非字母字符
in_word = 0;
char_count++;
}
}
printf("%d %d\n", word_count, char_count);
fclose(fp);
return 0;
}
```
程序首先打开名为 `in.txt` 的文件,读取其中的字符并统计单词和字符数。在读取字符时,程序判断当前字符是否为字母,如果是,则增加字符数,并检查是否已经进入一个新单词。如果之前不在单词中,说明进入了一个新单词,因此单词数加一。如果当前字符不是字母,则说明当前单词结束,将 `in_word` 标记为 0,表示不在单词中。
最后输出统计的单词数和字符数即可。
阅读全文