实现C++程序:统计文本文件中的单词数和字符个数(不计算行末回车符)。单词指的是仅由英文字母组成的串,如:is7years这样的串按照两个单词计算。 【输入形式】 读取当前目录下文本文件in.txt,以统计该文件中单词和字符个数。 【输出形式】 输出in.txt中单词和字符个数,中间以一个空格分隔。 【样例输入】 in.txt的内容为: Hi I am an (CQU)student. 【样例输出】 6 23 【样例说明】 该输入文件中共有6个单词(即Hi, I, am, an, CQU, student)及23个字符。
时间: 2024-02-19 09:58:50 浏览: 183
以下是实现该程序的代码:
```cpp
#include <iostream>
#include <fstream>
#include <cctype>
using namespace std;
int main()
{
ifstream in("in.txt"); // 打开输入文件
int charCount = 0; // 字符数
int wordCount = 0; // 单词数
bool inWord = false; // 是否在单词中
if (in.is_open()) {
char c;
while (in.get(c)) {
charCount++; // 统计字符数
if (isalpha(c)) {
if (!inWord) {
inWord = true;
wordCount++; // 统计单词数
}
} else {
inWord = false;
}
}
in.close(); // 关闭输入文件
cout << wordCount << ' ' << charCount << endl; // 输出单词数和字符数
} else {
cout << "Failed to open file!" << endl;
}
return 0;
}
```
该程序首先打开输入文件,然后依次读取文件中的每个字符。在读取每个字符时,程序会判断该字符是否为字母,如果是字母,则说明正在读取一个单词,需要将`inWord`标记为`true`,如果不是字母,则说明一个单词已经结束,需要将`inWord`标记为`false`。在统计字符数时,每读取一个字符,就将`charCount`加1,而在统计单词数时,只有在读取到新的单词时才将`wordCount`加1。最后输出单词数和字符数即可。
阅读全文