Как я могу посчитать количество «ххх» в строке с ++? - PullRequest
0 голосов
/ 26 сентября 2019

Я хочу посчитать число xxx в строке s, и я попробовал это:

cn2=count(s.begin(), s.end(), 'xxx');, и это проблема: warning: multi-character character constant [-Wmultichar]|

, затем я попробовал это:

cn2=count(s.begin(), s.end(), "xxx");

, но мы должны ввести символ в count параметры.

1 Ответ

0 голосов
/ 26 сентября 2019

Вы можете использовать std::string::find() в цикле, например:

int count = 0;
std::string::size_type pos = 0;
while ((pos = s.find("xxx", pos)) != std::string::npos)
{
    ++count;
    pos += 3;
}

Или std::search():

#include <algorithm>

int count = 0;
std::string sub = "xxx";
std::string::iterator iter = s.begin();
while ((iter = std::search(iter, s.end(), sub.begin(), sub.end())) != s.end())
{
    ++count;
    iter += sub.size();
}
...