エンジニアのソフトウェア的愛情

または私は如何にして心配するのを止めてプログラムを・愛する・ようになったか

文字列の前後の空白文字の削除

#include <string>
#include <algorithm>
#include <functional>
#include <cctype>

std::string trim(const std::string& s)
{
    std::string::const_iterator         left  = std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun(std::isspace)));
    std::string::const_reverse_iterator right = std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun(std::isspace)));
    return (left < right.base()) ? std::string(left, right.base()) : std::string();
}

std::string trimRight(const std::string& s)
{
    return std::string(s.begin(), std::find_if(s.rbegin(), s.rend(), std::not1(std::ptr_fun(std::isspace))).base());
}

std::string trimLeft(const std::string& s)
{
    return std::string(std::find_if(s.begin(), s.end(), std::not1(std::ptr_fun(std::isspace))), s.end());
}

「strip」という名前のほうが一般的なのかな?わたしはDelphi育ちなもので。