substr()

김민수·2025년 1월 8일

C++

목록 보기
22/68

substr() 함수는 C++의 std::string 클래스에서 제공하는 멤버 함수로, 문자열의 특정 부분을 추출하는 데 사용된다.


1. 매개변수

  1. pos : 시작 위치 (기본값은 0). 추출할 부분 문자열의 시작 인덱스
  2. len : 길이 (기본값은 npos). 추출할 부분 문자열의 길이. npos는 문자열의 끝까지 추출함을 의미한다.


2. 반환값

  • 지정된 위치와 길이에 해당하는 부분 문자열을 반환한다.
  • 예외 발생:
    • pos가 문자열 길이보다 클 경우, std::out_of_range 예외가 발생한다.


3. 사용 예시

기본 사용법

int main() {
    std::string str = "Hello, World!";
    std::string result = str.substr(7, 5); // "World" 추출
    std::cout << "부분 문자열: " << result << "\n";
    return 0;
}

출력

부분 문자열: World

매개변수 len을 생략한 경우
len을 생략하면, 지정한 시작 위치부터 문자열 끝까지 추출한다.

int main() {
    std::string str = "Hello, World!";
    std::string result = str.substr(7); // "World!" 추출
    std::cout << "부분 문자열: " << result << "\n";
    return 0;
}

출력

부분 문자열: World!


4. 특징

  1. 범위 초과 방지

    • substr()poslen에 따라 추출 범위를 자동으로 제한한다.
    • len이 문자열 끝을 초과하더라도 예외 없이 문자열 끝까지 추출한다.
    std::string str = "Hello";
    std::string result = str.substr(2, 10); // "llo" 반환
  2. 시간복잡도

    • O(n)으로, n은 추출되는 문자열의 길이다.
  3. 원본 문자열 수정 없음

    • substr()는 원본 문자열을 수정하지 않고 새 문자열을 반환한다.
profile
안녕하세요

0개의 댓글