【发布时间】:2020-03-20 06:17:29
【问题描述】:
我的问题是我用于在单词中查找模式的代码逐个字母地查找“模式”。 (我的目标是使用我的代码在一个单词中查找整个模式,例如,对于单词“abcabcabc”和模式“abc”,我希望得到“3”的结果。)
这是我的代码
case 2:{
string text, pattern;
int a, b;
int counter = 0;
cin >> text >> pattern;
for (a = 0; a < text.size(); a++) {
for (b = 0; b < pattern.size(); b++) {
if (text[a] == pattern[b])
counter++;
}
}
cout << counter;
break;
}
【问题讨论】:
-
从今天早些时候开始How do I check if a pattern exists in an entered string? - C,但很重要。或者干脆使用std::basic_string::find
-
@DavidC.Rankin 的问题是询问模式的数量,所以 string::find 不起作用。
-
当然会,它会将
index返回到模式的开头,因此您只需保留一个偏移量并沿着字符串向下工作。
标签: c++