string - substr 함수
개요
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.