👋
[C++] std::stringの両側の空白をすべて削除する
*昔別のサイトで書いた記事なので、情報が古い場合があります
std::stringの空白を削除する。
C++ポケットリファレンスを参考に作成。コードは
から取得。ただし、グローバル関数をクラス化した。
CC0 1.0 Universal license ってすばらしい。
sample.cpp
// Released under the CC0 1.0 Universal license.
#include <string>
#include <algorithm>
class trimLeftRightSpace
{
public:
trimLeftRightSpace(){}
~trimLeftRightSpace(){}
std::string trimSpace(std::string&& s)
{
std::string::iterator it_left = std::find_if_not(s.begin(), s.end(), isSpace);
s.erase(s.begin(), it_left);
std::string::iterator it_right = std::find_if_not(s.rbegin(), s.rend(), isSpace).base();
s.erase(it_right, s.end());
return s;
}
private:
static bool isSpace(char c)
{
return c == ' ';
}
};
#include <iostream>
#include <utility>
using namespace std;
int main() {
string s = " abc ";
trimLeftRightSpace trimmer;
s = trimmer.trimSpace(move(s));
cout << '[' << s << ']' << endl;
return 0;
}
Discussion