728x90
string::erase() 함수의 3가지 사용법
string& erase(size_t pos = 0, size_t len = npos); // pos 부터 len 길이만큼 문자열 제거
iterator erase(const_iterator p); // p에 해당하는 문자열 제거
iterator erase(const_iterator first, const_iterator last); // (first, last] 길이의 문자열 제거
특정 길이만큼 문자열 제거
첫 번째 파라미터로 제거할 문자열의 시작 위치, 두번째 파라미터로 제거할 문자열 길이를 넣습니다.
string& erase(size_t pos = 0, size_t len = npos);
다음 예제 코드는 "Nero Blog" 문자열에서 "Nero"를 삭제하는 코드 입니다.
#include <bits/stdc++.h>
using namspace std;
int main(){
string s = "Nero Blog";
s.erase(0,4);
cout << s << '\n';
return 0;
}
특정 위치의 문자열 제거
{문자열 이름}.erase({문자열 이름}.begin() + {제거할 위치} - 1)) 형식으로 특정 문자를 삭제합니다.
iterator erase(const_iterator p);
다음 예제 코드는 "Nero Blog" 문자열에서 "Blog"의 'B' 를 삭제하는 코드 입니다.
#include <bits/stdc++.h>
using namspace std;
int main(){
string s = "Nero Blog";
s.erase(s.begin() + 5);
cout << s << '\n';
return 0;
}
특정 범위의 문자열 제거
(first, last] 범위의 문자열을 삭제하며, 이 때 last는 삭제 범위에 포함되지 않습니다.
iterator erase(const_iterator first, const_iterator last);
다음 예제 코드는 "Nero Blog" 문자열에서 "Nero"를 삭제하는 코드 입니다.
#include <bits/stdc++.h>
using namspace std;
int main(){
string s = "Nero Blog";
// 삭제 범위 : "Nero "
s.erase(s.begin(), s.begin() + 5);
cout << s << '\n';
return 0;
}
특정 문자를 탐색하여 제거
string::erase 함수와 string::find 함수를 같이 사용합니다.
string::find 함수는 특정 문자열에서 원하는 문자를 찾을 때 사용하는 함수입니다.
탐색에 성공 시 찾고자 하는 문자의 첫 번째 iterator를 반환합니다.
iterator erase(const_iterator p);
다음 예제 코드는 "Nero, Tech Blog" 문자열에서 ", (콤마)"를 삭제하는 코드 입니다.
#include <bits/stdc++.h>
using namspace std;
int main(){
string s = "Nero, Tech Blog";
s.erase(find(s.begin(), s.end(), ','));
cout << s << '\n';
return 0;
}