[C++] 부분 문자열 찾을 때 find와 npos에 관련하여
[벡터에서 해당하는 문자를 찾고 싶을 때]
if(find(delete_list.begin(), delete_list.end(), num) == delete_list.end())
delete_list.end() <- 못 찾았을때
--> 즉 list의 처음과 끝에서 num이라는 것을 못 찾았을 때 if문 true가 된다는 것
[부분 문자열 찾기]
if(my_string.find(target) != string::npos)
answer = 1;
문자열.find(찾을거)
string::npos란 무엇인가?
*
std::string::npos는 C++ 표준 라이브러리에서 제공하는 std::string 클래스의 멤버 상수로서, 문자열에서 특정 패턴 또는 부분 문자열을 찾지 못했을 때 반환되는 값입니다.
std::string::npos는 size_t 타입의 값으로, size_t는 부호 없는 정수 타입으로서 양수만을 나타냅니다. 이 값은 std::string 클래스의 다양한 멤버 함수에서 사용되며, 문자열에서 패턴을 찾지 못한 경우 해당 함수의 반환값으로 사용됩니다.
예를 들어, std::string::find 함수는 문자열에서 특정 패턴을 찾았을 경우 해당 패턴의 시작 위치를 반환하고, 찾지 못한 경우 std::string::npos를 반환합니다. 이를 통해 사용자는 문자열에서 패턴을 찾았는지 여부를 쉽게 확인할 수 있습니다.
간단히 말하면, std::string::npos는 문자열에서 패턴을 찾지 못했을 때 반환되는 특별한 값으로, C++에서 문자열 검색과 관련된 함수들이 실패했을 때 사용됩니다.