如何计算像"bla_bla_blabla_bla"
这样的字符串中的"_"
数量
发布于 2010-10-06 17:59:18
#include <algorithm>
std::string s = "a_b_c";
size_t n = std::count(s.begin(), s.end(), '_');
发布于 2010-10-06 05:32:29
伪码:
count = 0
For each character c in string s
Check if c equals '_'
If yes, increase count
编辑: C++示例代码:
int count_underscores(string s) {
int count = 0;
for (int i = 0; i < s.size(); i++)
if (s[i] == '_') count++;
return count;
}
注意,这是与std::string
一起使用的代码,如果您使用的是char*
,请将s.size()
替换为strlen(s)
。
另请注意:我可以理解你想要“尽可能小”的东西,但我建议你改用这个解决方案。如您所见,您可以使用一个函数来封装代码,这样就不必每次都写出for
循环,而只需在其余代码中使用count_underscores("my_string_")
即可。在这里使用先进的C++算法当然是可能的,但我认为这有点过分了。
发布于 2013-01-14 20:27:07
#include <boost/range/algorithm/count.hpp>
std::string str = "a_b_c";
int cnt = boost::count(str, '_');
https://stackoverflow.com/questions/3867890
复制相似问题