天天看點

C++的string前後去空格函數Trim

    String去前後空格函數Trim,仿照Cstring的Trim函數

#include "stdafx.h"
#include<iostream> 
using namespace std;

string trim(const string& str)
{
    string::size_type pos = str.find_first_not_of(' ');
    if (pos == string::npos)
    {
        return str;
    }
    string::size_type pos2 = str.find_last_not_of(' ');
    if (pos2 != string::npos)
    {
        return str.substr(pos, pos2 - pos + 1);
    }
    return str.substr(pos);
}

int _tmain(int argc, _TCHAR* argv[])
{
    std::string str = " abc def    ";
    std::string strTrim = trim(str);
    cout << "Begin#" << strTrim.c_str() << "#End" <<endl;

    return 0;
}
           

其中Begin#和#end表現字元串的前後空格數。可以去除開頭或者結尾的多個或一個空格。

運作結果:

    Begin#abc def#End