minimimi
[C/C++] 문자열 자르기 substr()함수 본문
반응형
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
반응형