【发布时间】:2018-02-15 06:04:38
【问题描述】:
我想比较两个字符串,并计算在字符串 A 中可以找到多少个子字符串 B。
但它总是显示“0”。怎么了?
int getMatchCount(string a, string b)
{
int num;
num = 0;
for (int i = 0; i < a.length() - b.length() + 1; ++i)
{
if (a.compare(i, b.length() + i, b, 0, b.length()) == 0) // comapre function
{
num = num + 1;
}
else
{
continue;
}
}
}
int main()
{
int x = getMatchCount("sisisisisisisisis", "si");
cout << x << endl;
}
【问题讨论】:
-
你的字符串 a 和 b 有多长?
-
A 是 5,B 是 2..
-
这并不能解决您的问题,但您不需要 if/else 语句的 else 部分。默认情况下它将继续,因为 for 循环中没有其他代码。也可以将
num = num + 1缩短为num += 1 -
那我该怎么办? “比较”功能无法解决我的问题?