Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ substr() 함수로 부분 문자열 쉽게 추출하기

부분 문자열(Substring)이란 하나의 문자열에서 일부를 잘라낸 문자열을 의미합니다. C++에서는 substr() 함수를 사용하면 손쉽게 부분 문자열을 추출할 수 있습니다.

substr() 함수의 매개변수

substr() 함수는 두 개의 매개변수를 받으며, 그 역할은 다음과 같습니다.

  • pos: 부분 문자열이 시작되는 위치(인덱스)를 지정합니다.
  • len: 추출할 부분 문자열의 문자 개수를 지정합니다.

즉, str.substr(pos, len) 형태로 호출하면 str 문자열의 pos 위치부터 len개의 문자를 새로운 문자열로 반환받게 됩니다.

예제 코드

다음은 C++에서 substr() 함수를 사용해 부분 문자열을 얻는 프로그램입니다.

#include <iostream>
#include <string.h>

using namespace std;
int main() {
   string str1 = "Apples are red";
   string str2 = str1.substr(11, 3);
   string str3 = str1.substr(0, 6);

   cout << "Substring starting at position 11 and length 3 is: " << str2 <<endl;
   cout << "Substring starting at position 0 and length 6 is: " << str3;
   return 0;
}

실행 결과

위 프로그램을 실행하면 다음과 같은 결과가 출력됩니다.

Substring starting at position 11 and length 3 is: red
Substring starting at position 0 and length 6 is: Apples

코드 설명

위 프로그램에서 str1은 "Apples are red"라는 문자열로 선언되었습니다. 그런 다음 str2에는 str1의 11번 위치부터 3글자에 해당하는 부분 문자열이 저장되고, str3에는 str1의 0번 위치부터 6글자에 해당하는 부분 문자열이 저장됩니다.

string str1 = "Apples are red";
string str2 = str1.substr(11, 3);
string str3 = str1.substr(0, 6);

문자열 인덱스는 0부터 시작한다는 점에 유의하세요. 따라서 11번 위치는 'r'이 되고, 거기서 3글자를 추출하면 "red"가 됩니다. 마찬가지로 0번 위치부터 6글자를 추출하면 "Apples"가 됩니다.

이후 cout 문을 통해 str2와 str3의 내용을 화면에 출력합니다. 해당 코드는 다음과 같습니다.

cout << "Substring starting at position 11 and length 3 is: " << str2 <<endl;
cout << "Substring starting at position 0 and length 6 is: " << str3;

참고 사항

substr() 함수 사용 시 몇 가지 주의할 점이 있습니다. 첫째, pos 값이 원본 문자열의 길이보다 크면 std::out_of_range 예외가 발생하므로 범위 검사가 필요합니다. 둘째, len 매개변수를 생략하면 pos 위치부터 문자열 끝까지 전체가 추출됩니다. 또한 len이 남은 문자열 길이보다 큰 경우에도 에러 없이 끝까지 자동으로 처리되므로 안심하고 사용할 수 있습니다.