这样是可以的。
string A("ababa");
string B("aba");
string::size_type pos = 0;
unsigned int cnt = 0;
while ((pos = A.find_first_of(B, pos)) != string::npos) {
++cnt;
++pos;
}
cnt即为出现的次数。
string A("ababa");
string B("aba");
用std::count(A.begin(), A.end(), B)试试。应该也是可以的吧。因为string有重载==运算符。