Programming/C++

string - substr 함수

moxie2ks 2025. 1. 29. 18:01
728x90
반응형

개요

C++의 string 클래스는 문자열을 다루기 위한 다양한 기능을 제공한다. 그 중 substr 함수는 문자열의 일부를 추출하는 데 사용된다. 이 함수는 특정 위치에서 시작하여 지정된 길이만큼의 서브스트링을 반환한다. 본 글에서는 substr 함수의 사용법과 특징을 설명하고, 예제 코드를 통해 실제 활용 사례를 제시한다.

설명

substr 함수는 std::string 클래스의 멤버 함수로, 다음과 같은 형식을 가진다:

string substr(size_t pos = 0, size_t len = npos) const;

  • pos: 서브스트링의 시작 위치를 지정하는 매개변수이다. 기본값은 0이며, 이는 문자열의 처음을 의미한다.
  • len: 추출할 서브스트링의 길이를 지정하는 매개변수이다. 기본값은 npos로, 이는 문자열의 끝까지 추출함을 의미한다.

substr 함수를 호출하면, 지정된 위치에서 시작하여 주어진 길이만큼의 문자열을 새로운 std::string 객체로 반환한다. 만약 pos가 문자열의 길이를 초과하는 경우, std::out_of_range 예외가 발생한다. 또한, len이 문자열의 남은 길이보다 클 경우, 남은 모든 문자가 반환된다.

예제 코드

다음은 substr 함수의 사용 예를 보여주는 코드이다.

#include <iostream>
#include <string>

using namespace std;

int main() {
    string str = "Hello, World!";

    // 서브스트링 추출
    string sub1 = str.substr(0, 5); // "Hello"
    string sub2 = str.substr(7);     // "World!"

    cout << "Sub1: " << sub1 << endl; // "Hello"
    cout << "Sub2: " << sub2 << endl; // "World!"

    // 예외 처리 예시
    try {
        string sub3 = str.substr(15); // 예외 발생
    } catch (const out_of_range& e) {
        cout << "Error: " << e.what() << endl; // 예외 메시지 출력
    }

    return 0;
}

이 코드는 문자열 "Hello, World!"에서 두 개의 서브스트링을 추출하는 예를 보여준다. 첫 번째 서브스트링은 처음 5글자 "Hello"이며, 두 번째 서브스트링은 7번째 위치부터 시작하는 "World!"이다. 또한, pos가 문자열 길이를 초과하는 경우를 처리하기 위해 예외 처리 구문도 포함되어 있다.

실행 결과

결론

C++의 string::substr 함수는 문자열의 특정 부분을 효과적으로 추출할 수 있는 유용한 도구이다. 사용자는 시작 위치와 길이를 지정하여 원하는 서브스트링을 손쉽게 얻을 수 있다. 이 기능은 문자열 처리 및 분석 작업에서 매우 중요한 역할을 한다. 따라서, 문자열 작업을 수행하는 모든 C++ 프로그래머는 substr 함수의 사용법을 숙지해야 한다.

참고 문헌

  • C++ Reference. "std::string::substr". cppreference.com
  • Bjarne Stroustrup, "The C++ Programming Language", 4th Edition.
728x90
반응형