우노
[C++] 특정 문자열 제거 본문
들어가기 앞서,
- 문자열 제거는 아래와 같이 다양한 문제들이 존재합니다.
- 특정 Index 의 문자를 제거
- 특정 문자를 제거
- 특정 문자를 제외한 모든 문자를 제거
- 각 문제에 대한 해결 방법을, 예제 코드를 통해 다뤄보겠습니다.
특정 Index 의 문자를 제거
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1 = "ABCDE";
str1.erase(str1.begin()); // 첫 글자 삭제
cout << str1 << endl; //BCDE
string str2 = "ABCDE";
str2.erase(str2.end()-1); // 마지막 글자 삭제
cout << str2 << endl; //ABCD
// 매개변수를 반복자로 선언
string str3 = "ABCDE";
str3.erase(str3.begin() + 1); // 1번 index 삭제
cout << str3 << endl; //ACDE
string str4 = "ABCDE";
str4.erase(str4.begin() + 1, str4.begin() + 3); // 1번 index부터 2번 index까지 삭제
cout << str4 << endl; //ADE
// 매개변수를 숫자로 선언
string str5 = "ABCDE";
str5.erase(2,2); // 2번 index부터 2개 삭제
cout << str5 << endl; //ABE
string str6 = "ABCDE";
str6.erase(2); // 2번 index부터 마지막 index까지 전부 삭제
cout << str6 << endl; //AB
return 0;
}
특정 문자를 제거
erase 를 사용해 제거하는 방법
remove 함수는, 특정 문자가 있는 모든 인덱스를 erase 함수에게 반환하는 역할을 합니다.
#include <iostream> #include <string> using namespace std; int main(){ string str1 = "aaa . . . bbb"; // 공백 제거 str1.erase(remove(str1.begin(), str1.end(), ' '), str1.end()); cout << str1 << endl; // aaa...bbb return 0; }
regex_replace 를 사용해 제거
regex_replace.(대상 문자열, regex(정규표현식), 변경 문자열)
#include <iostream> #include <string> #include <regex> using namespace std; int main() { string str1 = "aaa . . . bbb"; // 공백과 마침표를 제거 str1 = regex_replace( str1 , regex("[ .]+"), "" ); cout << str1 << endl; // aaabbb return 0; }
특정 문자를 제외한 모든 문자를 제거
regex_replace 를 사용해 제거
regex_replace.(대상 문자열, regex(정규표현식), 변경 문자열)
#include <iostream> #include <string> #include <regex> using namespace std; int main() { string str1 = "...!@bat#*..y.abcdefghijklm"; // 알파벳 소문자, 숫자, 빼기(-), 밑줄(_), 마침표(.)를 제외한 모든 문자열 제거 str1 = regex_replace( str1 , regex("[^a-z0-9-_.]+"), "" ); cout << str1 << endl; // ...bat..y.abcdefghijklm return 0; }
'Language > C++' 카테고리의 다른 글
[C++] 특정 문자열 변경 및 치환 (0) | 2022.05.06 |
---|---|
[C++] 문자열 추가 및 삽입 (0) | 2022.05.06 |
[C++] 문자열 대문자 소문자 변환 방법 (0) | 2022.05.06 |
[C++] 범위 기반 for 문 (0) | 2022.04.26 |
[C++] 1차원 Vector 초기화 (0) | 2022.04.26 |
Comments