c++在txt文档中查找所有匹配的指定字符串,用CString实现 统计数量 和找到指定字符串所在行数 ,txt中空白行也要算一行
时间: 2024-04-14 19:26:41 浏览: 124
下面是使用 CString 类在 txt 文档中查找所有匹配的指定字符串,并统计数量以及找到指定字符串所在行数的示例代码:
```cpp
#include <iostream>
#include <fstream>
#include <afx.h>
int main() {
CStdioFile file;
CString filePath = _T("example.txt"); // 替换为你的文本文件路径
CString searchStr = _T("指定字符串"); // 替换为你要查找的字符串
if (file.Open(filePath, CFile::modeRead | CFile::typeText)) {
CString line;
int count = 0;
int lineNum = 0;
while (file.ReadString(line)) {
line.Trim(); // 去除行两端的空白字符
if (!line.IsEmpty() || line == "") { // 空白行也算一行
lineNum++;
int found = line.Find(searchStr);
while (found != -1) {
count++;
std::cout << "Found at line " << lineNum << ", position " << found << std::endl;
found = line.Find(searchStr, found + searchStr.GetLength());
}
}
}
std::cout << "Total occurrences: " << count << std::endl;
file.Close();
}
else {
std::cout << "Failed to open the file!" << std::endl;
}
return 0;
}
```
请确保在项目设置中正确添加了 MFC 支持,并链接了 MFC 库。
上述代码将逐行读取文本文件,并使用 `Trim()` 函数去除行两端的空白字符。如果行不为空或者仅包含空白字符,将增加行号 `lineNum` 并在该行中查找指定字符串的出现位置。如果找到匹配的字符串,将打印出所在行数和位置,并统计出现次数。
希望对你有所帮助!
阅读全文