Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用find()C++;_C++ - Fatal编程技术网

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)