쌓고 쌓다
[C++] string erase 정리 본문
크게 지우는 방법은 3가지이다.
1. sequence
string& erase (size_t pos = 0, size_t len = npos);
pos에서부터 길이 len 만큼 지울 수 있습니다.
len은 시작 위치를 포함한 길이입니다.
예제
string str = "Hello! Test string~";
cout << str<<endl;
str.erase(0, 3);
cout << str;
0위치에서부터 길이3만큼을 지웁니다.
실행 결과
2. character
iterator earse (iterator p);
포인터를 이용해 그 위치를 지워버립니다.
예제 (1)
string str = "Hello! Test string~";
cout << str<<endl;
str.erase(str.begin());
cout << str;
실행 결과 (1)
예제 (2)
string str = "Hello! Test string~";
cout << str<<endl;
str.erase(str.begin()+5);
cout << str;
begin으로부터 5 이동한 위치를 지움
실행 결과 (2)
3. range
iterator erase (iterator first, iterator last);
iterator를 이용해 범위를 지정해 지웁니다.
[first, last) 범위를 지웁니다. -> last는 포함하지 않음.
예제 (1)
string str = "Hello! Test string~";
cout << str<<endl;
str.erase(str.begin(),str.begin()+5);
cout << str;
실행 결과 (1)
예제 (2)
string str = "Hello! Test string~";
cout << str<<endl;
str.erase(str.begin(),str.end()-1);
cout << str;
실행 결과 (2)
str.end() 는 문자열의 끝보다 한 칸 뒤를 가리킨다.
즉, 문자열 끝+1을 가리킴.
그래서 str.end()-1이 문자열 끝을 가리킴
string str = "Hello";
str.erase(str.end() - 1);
cout << str;
실행 결과
'프로그래밍 > C & C++' 카테고리의 다른 글
[C++] 정렬(sort 함수), compare 함수 만들기(정렬 기준 만들기) (0) | 2022.07.12 |
---|---|
[C++] 배열 초기화 - fill 함수 (0) | 2022.07.09 |
[C++] 역순 만들기(뒤집기) reverse 함수 (0) | 2022.07.09 |
[C++] vector erase (0) | 2022.06.30 |
[C++] stoi, stod, to_string ( int <-> string 변환 ) (0) | 2022.06.25 |
Comments