[C++] string::erase - 특정 문자열 삭제 함수
- Archive2/C&C++
- 2022. 6. 5.
[C++] string::erase
*개인적인 공부 내용을 기록하는 용도로 작성한 글 이기에 잘못된 내용을 포함하고 있을 수 있습니다.
_contents
#1 string::erase
#2 example
#2.1 sequnce _ 특정 길이 만큼의 문자열 제거
#2.2 ch _ 특정 위치의 문자 제거
#2.3 range _ 특정 범위를 지정해 문자열 제거
#2.4 erase & find _ 특정 문자를 탐색하여 제거
#1 string::erase
<string>헤더에 정의된 erase함수는 문자열에서 특정한 문자열을 제거해주는 기능을 수행하는 함수이다.
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] 길이의 문자열을 제거한다.
#2 example
#2.1 sequnce _ 특정 길이 만큼의 문자열 제거
첫 번째 파라미터로 제거할 문자열의 시작 위치를, 두 번째 파라미터로 제거할 문자열의 길이를 넣어 주어 삭제를 수행한다.
다음은 "This is test sentence" 문자열에서 "This "를 삭제하는 코드이다.
#include <algorithm>
#include <string>
#include <iostream>
using namespace std;
int main(){
string str = "This is test sentence";
// string& erase(size_t pos = 0, size_t len = npos);
// pos부터 len길이 만큼의 문자를 제거한다.
// ... delete "This "
str.erase(0, 5);
cout << str << endl;
return 0;
}
[실행결과] test sentence
#2.2 ch _ 특정 위치의 문자열 제거
iterator를 이용해 특정 위치의 문자를 제거한다.
문자열이름.erase(문자열이름.begin() + (제거할 위치 - 1)) 형식으로 특정 문자를 삭제할 수 있다.
다음은 "This is test sentence" 문자열에서 세 번째 위치에 존재하는 "i" 문자를 삭제하는 예제이다.
#include <algorithm>
#include <string>
#include <iostream>
using namespace std;
int main(){
string str = "This is test sentence";
// iterator erase(const_iterator p);
// p에 위치하는 문자를 제거한다.
// ... delete "i"
str.erase(str.begin() + 2);
cout << str << endl;
return 0;
}
[실행결과] Ths is test sentence
#2.3 range _ 특정 범위를 지정해 문자열 제거
erase 함수에 두 개의 파라미터 (first, last) 를 보내어 지정 범위의 문자열을 제거할 수 있다.
(first, last] 범위의 문자열을 삭제하며, 이 때 last는 삭제 범위에 포함되지 않는다.
다음은 "This is text sentence"에서 "is text"(공백 포함) 문자열을 삭제하는 예제이다.
#include <algorithm>
#include <string>
#include <iostream>
using namespace std;
int main(){
string str = "This is test sentence";
// iterator erase(const_iterator first, const_iterator last);
// (first, last] 에 해당하는 문자를 제거한다. 즉, last는 제거하지 않는다.
// ... delete "is test "
str.erase(str.begin() + 5, str.begin() + 13);
cout << str << endl;
return 0;
}
[실행결과] This sentence
#2.4 erase & find _ 특정 문자를 탐색하여 제거
string::erase 함수와 string::find 함수를 같이 사용하면 원하는 문자를 탐색해 제거할 수 있다.
string::find 함수는 특정 문자열에서 원하는 문자를 찾을 때 사용하는 함수로, 탐색에 성공 시 찾고자 하는 문자의 첫 번째 이터레이터를 반환한다. _about find function
다음은 "Hello, C++!" 문자열에서 ","(콤마)를 탐색해 제거한 예제이다.
#include <algorithm>
#include <string>
#include <iostream>
using namespace std;
int main(){
// erase & find function
// Hello, C++! -> Hello C++!
string str = "Hello, C++!";
str.erase(find(str.begin(), str.end(), ','));
cout << str << endl;
return 0;
}
[실행결과] Hello C++!
'Archive2 > C&C++' 카테고리의 다른 글
[C++] 순열&조합 구하는 함수 next_permutation (0) | 2022.06.14 |
---|---|
[C++] tuple 사용법 & 예제 (0) | 2022.06.10 |
[C++] Tokenizing : 문자열 파싱 _ split (with find & substr) (0) | 2022.05.28 |
[C++] 알파벳 대소문자 관련 함수_ islower & isupper & tolower & toupper (0) | 2022.05.27 |
[C++ STL] find() - 범위(Vector, Array..) 내에서 값을 탐색하는 함수 (0) | 2022.05.19 |