使用for循环遍历字符串统计字符出现次数;2. 利用std::count算法简洁实现;3. 结合tolower实现不区分大小写的统计。

在C++中统计字符串中某个字符出现的次数,有多种实现方式,最常用的是使用循环遍历或标准库函数。下面介绍几种简单有效的方法。
使用for循环遍历字符串
通过逐个检查字符串中的每个字符,判断是否等于目标字符,并用计数器记录出现次数。
- 定义一个整型变量作为计数器,初始值为0
- 使用范围for循环或索引遍历字符串每个字符
- 如果当前字符等于目标字符,计数器加1
示例代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str = "hello world";
char target = 'l';
int count = 0;
for (char c : str) {
if (c == target) {
count++;
}
}
cout << "字符 '" << target << "' 出现了 " << count << " 次。\n";
return 0;
}
使用std::count算法
C++标准库提供了std::count函数,可以更简洁地完成字符统计任务。它位于<algorithm>头文件中。
立即学习“C++免费学习笔记(深入)”;
- 传入字符串的起始和结束迭代器
- 指定要查找的目标字符
- 函数返回匹配元素的个数
示例代码:
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string str = "programming";
char target = 'm';
int count = count(str.begin(), str.end(), target);
cout << "字符 '" << target << "' 出现了 " << count << " 次。\n";
return 0;
}
不区分大小写的字符统计
若需要忽略大小写进行统计(例如统计'a'时也包含'A'),可以在比较前将字符统一转换为小写或大写。
方法:使用std::tolower或std::toupper
#include <iostream>
#include <string>
#include <cctype> // tolower
using namespace std;
int main() {
string str = "Apple and Avocado";
char target = 'a';
int count = 0;
for (char c : str) {
if (tolower(c) == tolower(target)) {
count++;
}
}
cout << "字符 '" << target << "' (不区分大小写)出现了 " << count << " 次。\n";
return 0;
}
基本上就这些。使用std::count是最简洁的方式,适合大多数场景;手动循环则更灵活,便于扩展逻辑,比如添加条件判断或多字符统计。











