C++ 문자열 자르기 substr 사용 방법

C++ 문자열을 substr 함수를 사용해 자르는 방법을 알아보겠습니다.

substr

문자열에서 원하는 위치에 있는 문자열을 취득하기 위해 substr 함수를 사용합니다.

substr 함수 기본적인 사용 방법을 보겠습니다.

문자열.substr(시작 위치, 길이)

  • 첫 번째 인수에는 시작 위치를, 두 번째 인수에는 취득하고 싶은 문자수를 지정합니다.
  • 문자열 시작은 0부터 입니다.

 

substr 샘플을 보겠습니다.

#include <iostream>
using namespace std;


int main() {
	string str1 = "abcde";

	cout << str1.substr(0, 1) << endl; // a
	cout << str1.substr(1, 1) << endl; // b
	cout << str1.substr(2, 1) << endl; // c

	cout << str1.substr(0, 2) << endl; // ab
	cout << str1.substr(1, 2) << endl; // bc

	return 0;
}

결과

a
b
c
ab
bc

 

지정 위치에서부터 지정한 길이만큼 문자열을 취득합니다.

두 번째 인수인 길이는 생략할 수 있습니다.

생략하는 경우에는 지정한 위치부터 마지막까지 문자열을 취득합니다.

#include <iostream>
using namespace std;


int main() {
	string str1 = "abcde";

	cout << str1.substr(1) << endl; // bcde
	cout << str1.substr(2) << endl; // cde
	cout << str1.substr(3) << endl; // de

	return 0;
}

결과

bcde
cde
de

 

지정한 위치부터 마지막 문자열까지 취득한 것을 볼 수 있습니다.

 

뒤에서부터 자르기

substr 함수를 사용해 문자열 뒤에서부터 자르는 방법을 보겠습니다.

#include <iostream>
using namespace std;


int main() {
	string str1 = "abcde";

	cout << str1.substr(str1.length() - 1) << endl; //e
	cout << str1.substr(str1.length() - 2) << endl; //de
	cout << str1.substr(str1.length() - 3) << endl; //cde

	return 0;
}

결과

e
de
cde

 

문자열의 길이를 구하는 length 함수를 사용했습니다.

문자열 길이에서 취득하고 싶은 문자열 길이만큼 빼고, 그 값이 시작 위치가 됩니다.

substr과 length 함수를 사용해 뒤에서부터 문자열을 취득하는 방법을 알아봤습니다.

댓글