很多其他語(yǔ)言的libary都會(huì)有去除string類的首尾空格的庫(kù)函數(shù),但是標(biāo)準(zhǔn)C++的庫(kù)卻不提供這個(gè)功能。但是C++string也提供很強(qiáng)大的功能,實(shí)現(xiàn)trim這種功能也不難。下面是幾種方法:
1.使用string的find_first_not_of,和find_last_not_of方法
/*
Filename : StringTrim1.cpp
Compiler : Visual C++ 8.0
Description : Demo how to trim string by find_first_not_of & find_last_not_of
Release : 11/17/2006
*/
#include
#include
std::string& trim(std::string &);
int main()
{
std::string s = \" Hello World!! \";
std::cout << s << \" size:\" << s.size() << std::endl;
std::cout << trim(s) << \" size:\" << trim(s).size() << std::endl;
return 0;
}
std::string& trim(std::string &s)
{
if (s.empty())
{
return s;
}
s.erase(0,s.find_first_not_of(\" \"));
s.erase(s.find_last_not_of(\" \") + 1);
return s;
}
2.使用boost庫(kù)中的trim,boost庫(kù)對(duì)提供很多C++標(biāo)準(zhǔn)庫(kù)沒(méi)有但是又非常常用和好用的庫(kù)函數(shù),例如正則表達(dá)式,線程庫(kù)等等。
/*
Filename : boostStringTrim.cpp
Compiler : Visual C++ 8.0 / ISO C++ (boost)
Description : Demo how to boost to trim string
Release : 02/22/2007 1.0
*/
#include
#include
#include
1.使用string的find_first_not_of,和find_last_not_of方法
/*
Filename : StringTrim1.cpp
Compiler : Visual C++ 8.0
Description : Demo how to trim string by find_first_not_of & find_last_not_of
Release : 11/17/2006
*/
#include
#include
std::string& trim(std::string &);
int main()
{
std::string s = \" Hello World!! \";
std::cout << s << \" size:\" << s.size() << std::endl;
std::cout << trim(s) << \" size:\" << trim(s).size() << std::endl;
return 0;
}
std::string& trim(std::string &s)
{
if (s.empty())
{
return s;
}
s.erase(0,s.find_first_not_of(\" \"));
s.erase(s.find_last_not_of(\" \") + 1);
return s;
}
2.使用boost庫(kù)中的trim,boost庫(kù)對(duì)提供很多C++標(biāo)準(zhǔn)庫(kù)沒(méi)有但是又非常常用和好用的庫(kù)函數(shù),例如正則表達(dá)式,線程庫(kù)等等。
/*
Filename : boostStringTrim.cpp
Compiler : Visual C++ 8.0 / ISO C++ (boost)
Description : Demo how to boost to trim string
Release : 02/22/2007 1.0
*/
#include
#include
#include