minimimi

[C/C++] 문자열 자르기 substr()함수 본문

프로그래밍 공부/C

[C/C++] 문자열 자르기 substr()함수

99mini 2019. 8. 9. 11:24
반응형

substr()

basic_string substr(size_type pos = 0, size_type count = npos) const;

문자열의 일부를 리턴합니다. 

문자열의 pos 번 째 문자부터 count 길이 만큼의 문자열을 리턴합니다. 만약, 리턴해야될 문자열의 길이가 기존 문자열보다 길다면, 기존 문자열의 마지막까지만 리턴합니다.

또한 , count 로 npos 를 전달받으면, pos부터 기존 문자열의 마지막까지 리턴합니다. 

예시

#include <iostream>
#include <string>

using namespace std;

int main() {
	string a = "0123456789";

	//count 가 npos 이므로 pos부터 문자열 끝까지 리턴
	string substr1 = a.substr(5);
	cout << substr1 << endl;

	//count 가 3임으로 2부터 3개의 문자열 리턴
	string substr2 = a.substr(2, 3);
	cout << substr2 << endl;

	//count 가 문자열의 범위를 넘어가므로 pos부터 문자열 끝까지만 리턴
	string substr3 = a.substr(5, 100);
	cout << substr3 << endl;

	try {
		//pos 가 문자열 범위 밖이므로 예외 발생
		string substr4 = a.substr(a.size() + 10, 100);
		cout << substr4 << endl;
	}
	catch(out_of_range &e){
		cout << "pos exceeds string size\n";
	}
}

출력 결과

56789
234
56789
pos exceeds string size
반응형