본문 바로가기
IT/programming

[C/C++] C++ string ltrim, rtrim, trim

by 어느해겨울 2022. 3. 23.

ltrim, rtrim, trim

C++11 환경에서 작업을 하는데 trim 기능이 없어서.. :( 직접 만들기는 귀찮고 찾다보니 스택오버플로우 댓글 중에 깔끔하게 구현한 코드가 있어서 기록용으로 정리해본다.

 

소스코드

#include <algorithm> 
#include <cctype>
#include <locale>


string ltrim(string _s) {
    _s.erase(_s.begin(), find_if(_s.begin(), _s.end(),
            not1(ptr_fun<int, int>(isspace))));
    return _s;
}

string rtrim(string _s) {
    _s.erase(find_if(_s.rbegin(), _s.rend(),
            not1(ptr_fun<int, int>(isspace))).base(), _s.end());
    return _s;
}

string trim(string _s) {
    return ltrim(rtrim(_s));
}

 

출처: https://stackoverflow.com/questions/216823/how-to-trim-a-stdstring

 

How to trim a std::string?

I'm currently using the following code to right-trim all the std::strings in my programs: std::string s; s.erase(s.find_last_not_of(" \n\r\t")+1); It works fine, but I wonder if there are some end-

stackoverflow.com

 

댓글