不使用for (char c : votes)
时间: 2024-09-23 11:02:08 浏览: 29
C语言中的BYTE和char深入解析
如果不想使用`for (char c : votes)`这种范围基元迭代法,你可以使用传统的索引循环来遍历字符串。以下是不使用C++11范围基础的示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string votes = ""; // 输入的选票序列
const char candidates[] = {'A', 'B', 'C', 'D', 'E'};
int vote_count[5] = {0}; // 初始化所有候选人得票数
// 使用索引从0开始遍历字符串
for (size_t i = 0; i < votes.length(); ++i) {
char c = votes[i];
if (c != '*') {
// 更新相应候选人的票数
for (int j = 0; j < 5 && c == candidates[j]; ++j) {
vote_count[j]++;
}
}
}
// ...(后续计算赢家的过程)
return 0;
}
```
在这个版本中,我们通过`votes.length()`获取字符串长度,然后逐字符进行检查。这种方法在老版的C++编译器上也能工作,但相对现代风格的代码稍微繁琐一些。
阅读全文