C++ 如何使用find()C++;
即使没有出现子字符串,程序中的循环似乎至少执行一次。为什么会这样C++ 如何使用find()C++;,c++,C++,即使没有出现子字符串,程序中的循环似乎至少执行一次。为什么会这样 #include <iostream> #include <string> using namespace std; int countSubstrings(const string& original_string, const string& substr) { int number_of_ocurrences = 0; int i = 0; for (i =
#include <iostream>
#include <string>
using namespace std;
int countSubstrings(const string& original_string, const string& substr) {
int number_of_ocurrences = 0;
int i = 0;
for (i = original_string.find(original_string, 0); i != string::npos;
i = original_string.find(substr, i)) {
number_of_ocurrences++;
i++;
}
return number_of_ocurrences;
}
int main() {
string input;
while (1) {
cout << "Enter a a line of text: ";
getline(cin, input, '\n');
cout << '\n';
cout << "Number of ocurrences of the word needle: ";
cout << countSubstrings(input, "needle") << '\n';
}
}
#包括
#包括
使用名称空间std;
int countsubstring(常量字符串和原始字符串,常量字符串和substr){
发生的整数=0;
int i=0;
for(i=original\u string.find(original\u string,0);i!=string::npos;
i=原始字符串。查找(substr,i)){
眼数++;
i++;
}
返回当前事件的数量;
}
int main(){
字符串输入;
而(1){
当您在for循环中设置i
时,cout
original_string.find(original_string, 0)
所以你正在搜索字符串,它会找到它自己。我相信你是有意的
original_string.find(substr, 0)