작성
·
138
0
안녕하세요 큰돌님 split_debug 를 보면서 궁금한 점이 생겼는데요
while ((pos = input.find(delimiter)) != string::npos) {
longlong pos = input.find(delimiter);
cout << "POS : " << pos << '\n';
if (pos == string::npos)break;
token = input.substr(0, pos);
ret.push_back(token);
input.erase(0, pos + delimiter.length());
}
ret.push_back(input);
return ret;
while문의 조건으로
(pos = input.find(delimiter)) != string::npos
가 있는데 if(pos == string::npos) break 를 하는 이유가 궁금합니다.
답변 1
0
안녕하세요 재형님 ㅎㅎ
해당 부분은 문자열을 받아서 해당 delimiter 문자열을 찾아가면서 하나씩 지우는 로직입니다. 그렇기 때문에 소거를 했다면 해당 문자열을 못 찾았기 때문에 break를 걸어야 하는 로직입니다.
string::npos에 관한 부분은 교안에 있으니 참고 부탁드립니다.
감사합니다.