Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++ std::string에서 공백 제거하기 – remove() 함수 활용법

이 글에서는 C++에서 std::string에 포함된 공백 문자를 제거하는 방법을 살펴봅니다. 공백 제거에는 STL의 remove() 함수를 활용합니다. 이 함수는 반복자(iterator)의 시작과 끝을 첫 번째·두 번째 인수로 받고, 세 번째 인수로 전달된 값(여기서는 공백 문자 ' ')을 해당 범위에서 제거합니다.

입력: "This is C++ Programming Language"
출력: "ThisisC++ProgrammingLanguage"

알고리즘

  1. 대상 문자열을 준비합니다.
  2. remove() 함수를 사용하여 문자열에서 공백을 제거합니다.
  3. 결과 문자열을 출력(반환)합니다.

예제 코드

#include<iostream>
#include<algorithm>
using namespace std;

int main() {
    string my_str = "This is C++ Programming Language";
    cout << "공백이 있는 문자열 : " << my_str << endl;
    remove(my_str.begin(), my_str.end(), ' ');
    cout << "공백이 없는 문자열 : " << my_str;
    return 0;
}

실행 결과

공백이 있는 문자열 : This is C++ Programming Language
공백이 없는 문자열 : ThisisC++ProgrammingLanguage

참고: erase–remove 관용구

std::remove()는 실제로 문자열의 길이를 줄이지 않고, 제거되지 않은 문자들을 앞쪽으로 이동시키기만 합니다. 따라서 남는 뒷부분까지 완전히 정리하려면 반환된 반복자부터 문자열 끝까지 erase()로 잘라내는 erase–remove 관용구를 사용하는 것이 가장 안전하고 표준적인 방법입니다.

my_str.erase(remove(my_str.begin(), my_str.end(), ' '), my_str.end());