String trim with ISO C++


Do you want a trim function for strings using ISO C++ and no more? like this:

#include <iostream>
#include <string>

void main()
{
assert_equal(“ab b”,trim(std::string(” ab b “)));
assert_equal(“ab b”,trim(std::string(” ab b”)));
assert_equal(“ab b”,trim(std::string(“ab b “)));
}

void assert_equal(const std::string& s1,const std::string& s2)
{
if( s1 == s2 ) return;
std::cout << “not equal:\ns1:[” << s1 << “]\ns2:[” << s2 << “]\n”;
}


Here is one:
std::string trim(std::string& s,const std::string& drop = ” “)
{
std::string r=s.erase(s.find_last_not_of(drop)+1);
return r.erase(0,r.find_first_not_of(drop));
}