【问题描述】 实现程序:统计文本文件中的单词数和字符个数(不计算行末回车符)。单词指的是仅由英文字母组成的串,如:is7years这样的串按照两个单词计算。 【输入形式】 读取当前目录下文本文件in.txt,以统计该文件中单词和字符个数。 【输出形式】 输出in.txt中单词和字符个数,中间以一个空格分隔。 【样例输入】 in.txt的内容为: Hi I am an (CQU)student. 【样例输出】 6 23 【样例说明】 该输入文件中共有6个单词(即Hi, I, am, an, CQU, student)及23个字符。
时间: 2024-04-01 17:33:04 浏览: 56
以下是实现上述功能的C语言代码:
```c
#include <stdio.h>
#include <ctype.h>
int main() {
FILE* fp = fopen("in.txt", "r");
int word_count = 0, char_count = 0;
char buffer[81];
// 遍历文件统计单词数和字符数
while(fgets(buffer, 81, fp) != NULL) {
char* p = buffer;
while(*p != '\0') {
if(isalpha(*p)) {
char_count++;
while(isalpha(*p)) {
p++;
}
word_count++;
} else {
p++;
}
}
}
fclose(fp);
printf("单词数:%d,字符数:%d\n", word_count, char_count);
return 0;
}
```
代码中通过文件操作打开in.txt文件,使用fgets函数每次读入一行,然后使用指针p遍历该行中的每一个字符。若当前字符为字母,则将字符计数器加1,并使用while循环跳过该单词中的所有字母。每当跳过一个单词时,单词计数器加1。最后在程序执行结束时输出单词数和字符数。
阅读全文
相关推荐














