c++设计一个算法统计在输入字符串中各个不同字符出现的频度并将结果存入文件。不使用容器
时间: 2024-12-24 07:31:54 浏览: 2
C++ 读文件 将文件内容读入到字符串string中的方法
要实现这个功能,你可以使用C++的字符数组和基本循环结构来统计每个字符的出现次数。下面是一个简单的算法示例:
```cpp
#include <iostream>
#include <fstream>
void countChars(char* input, std::ofstream& outputFile) {
const int maxSize = 1000;
char charArray[maxSize];
memset(charArray, 0, sizeof(charArray)); // 初始化字符数组
int index = 0;
while (input[index]) { // 遍历输入字符串
char currentChar = toupper(input[index]); // 转换为大写
if (currentChar >= 'A' && currentChar <= 'Z') { // 只考虑大写字母
charArray[currentChar - 'A']++;
}
index++;
}
// 写入输出文件
for (int i = 0; i < 26; i++) {
if (charArray[i] > 0) {
outputFile << "(ABCDEFGHIJKLMNOPQRSTUVWXYZ)[" << (i + 'A') << "," << charArray[i] << "]" << '\n';
}
}
}
int main() {
char input[1001];
std::ifstream inputFile("input.txt"); // 假设输入文件已存在
std::ofstream outputFile("output.txt"); // 输出文件
if (inputFile.is_open()) {
inputFile.getline(input, sizeof(input));
inputFile.close();
countChars(input, outputFile);
outputFile.close();
std::cout << "Character frequencies have been written to output.txt." << std::endl;
} else {
std::cerr << "Failed to open input file." << std::endl;
}
return 0;
}
```
这段代码首先读取输入文件中的字符串,然后遍历字符串并统计每个大写字母出现的次数。最后,将结果以`(字母, 出现次数)`的形式写入到`output.txt`文件中。
阅读全文