C++

[C++] 부분 문자열 찾을 때 find와 npos에 관련하여

서니션 2023. 10. 6. 11:31
728x90
반응형

[벡터에서 해당하는 문자를 찾고 싶을 때]

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++에서 문자열 검색과 관련된 함수들이 실패했을 때 사용됩니다.

728x90
반응형