【发布时间】:2021-12-06 09:56:49
【问题描述】:
我有这个函数来检查一个字符串是否是一个子字符串,我是否可以向它添加一个变量来计算该子序列在该序列中出现的次数?或者我需要为此创建另一个函数。
bool SearchString(string sir1, string sir2) {
if (sir2.size() > sir1.size())
return false;
for (int i = 0; i < sir1.size(); i++) {
int j = 0;
if (sir1[i] == sir2[j]) {
int k = i;
while (sir1[i] == sir2[j] && j < sir2.size()) {
j++;
i++;
}
if (j == sir2.size())
return true;
else
i = k;
}
}
return false;
}
【问题讨论】:
-
是的,但代价是每次都扫描整个字符串,而现在它在第一次出现时停止。
-
当然,添加一个计数器,将其设置为零,而不是
return true;递增计数器,然后将该值作为结果返回。完成。
标签: c++ string count substring function-definition