아래 코드는 간단합니다. 내가 아는 한 string :: find()가 일치하는 것을 찾지 못하면 -1을 반환한다. 그러나 몇 가지 이유로 아래 코드는 작동하지 않습니다. 매번이 코드를 실행하면 무한 루프가 발생합니다. 도와 줘서 고마워!string.find()가 -1을 반환하지 않습니다.
#include <string>
#include <iostream>
using namespace std;
int main()
{
string text;
text = "asdasd ijk asdasd";
string toReplace = "ijk";
cout<<text<<endl;
int counter = 0;
while (text.find(toReplace) != -1)
counter++;
cout<<counter<<endl;
system("pause");
}
[std :: basic_string :: find()] (http://en.cppreference.com/w/cpp/string/basic_string/find)의 설명서를 읽는 데 시간이 많이 걸렸습니다. * in wonder * in 어떻게 작동하는지 배우기. – WhozCraig
업데이트 : while (text.find (toReplace)! = string :: npos) 동안 사용하려고했지만 끝이없는 루프가 계속 발생합니다. ( – eoLithic
의미없는 카운터를 증가시키는 것 외에는 아무 것도하지 않으셨습니까? 첫 번째 확인, 시간만으로는 별다른 호응을 얻지 못할 수도 있습니다. 성공한 히트를보고 시작할 위치를 변경하십시오. – WhozCraig