C++ `string::npos`

오현진·2024년 6월 16일

C++ 

목록 보기
13/26
  • string::npos는 C++ 표준 라이브러리에서 제공되는 상수로, <string> 헤더에 정의되어 있습니다.
  • 이 상수는 "no position"의 약자로, 검색 작업이 지정된 하위 문자열이나 문자를 찾지 못했음을 나타냅니다.

정의

  • string::npos는 static const size_t npos = -1;로 정의됩니다.
  • 이는 unsigned integral 타입의 가장 큰 값으로, 문자열 내에서 유효하지 않거나 존재하지 않는 위치를 나타냅니다.

사용 예

  • string::npos는 주로 문자열 멤버 함수들과 함께 사용됩니다.

  • 이러한 함수들은 검색이 실패했을 때 string::npos를 반환합니다.

  • string::npos를 사용하는 일반적인 멤버 함수는 다음과 같습니다.

    • find(): 문자열 내에서 하위 문자열이나 문자를 검색합니다.
    • rfind(): 문자열의 끝에서부터 하위 문자열이나 문자를 검색합니다.
    • find_first_of(), find_last_of(): 특정 문자 집합 내의 어떤 문자를 검색합니다.
    • find_first_not_of(), find_last_not_of(): 특정 문자 집합 내에 없는 첫 번째 문자를 검색합니다.

예제

다음은 string::npos가 어떻게 사용되는지 보여주는 예제입니다.


#include <iostream>
#include <string>

int main() {
    std::string str = "Hello, world!";
    std::string toFind = "world";

    size_t pos = str.find(toFind);

    if (pos != std::string::npos) {
        std::cout << "Found '" << toFind << "' at position " << pos << std::endl;
    } else {
        std::cout << "'" << toFind << "' not found" << std::endl;
    }

    return 0;
}

예제 설명

  • str.find(toFind)는 "Hello, world!" 문자열 내에서 "world"라는 하위 문자열을 검색합니다.
  • "world"를 찾으면, find 함수는 하위 문자열의 첫 번째 문자의 위치를 반환합니다.
  • "world"를 찾지 못하면, find 함수는 std::string::npos를 반환합니다.
  • 이 예제에서는 "Hello, world!"에 "world"가 포함되어 있으므로 find 함수는 "world"의 시작 인덱스인 7을 반환합니다.

0개의 댓글