去除C++String的首尾空格
来源:互联网 发布:windows运维 书籍 编辑:程序博客网 时间:2024/05/17 04:40
#include <algorithm>
#include <functional>
#include <cctype>
using namespace std;
inline string& ltrim(string &ss)
{
int (*pf)(int)=isspace;
string::iterator p=find_if(ss.begin(),ss.end(),not1(ptr_fun(pf)));
ss.erase(ss.begin(),p);
return ss;
}
inline string& rtrim(string &ss)
{
int (*pf)(int)=isspace;
string::reverse_iterator p=find_if(ss.rbegin(),ss.rend(),not1(ptr_fun(pf)));
ss.erase(p.base(),ss.end());
return ss;
}
inline string& trim(string &st)
{
ltrim(rtrim(st));
return st;
}
http://blog.chinaunix.net/u1/41728/showart_361368.html
http://blog.sina.com.cn/s/blog_4f27dbd50100cuwe.html
string trim(string& s)
{}
string ltrim(string& s)
{
}
string rtrim(string& s)
{
}
很多其他语言的libary都会有去除string类的首尾空格的库函数,但是标准C++的库却不提供这个功能。但是C++string也提供很强大的功能,实现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 <iostream>
#include <string>
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;
}
/*
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 <iostream>
#include <string>
#include <boost/algorithm/string.hpp>
using namespace std;
using namespace boost;
int main() {
string s = " hello boost!! ";
trim(s);
cout << s << endl;
}
/*
Filename : stringTrim1.cpp
Compiler : Visual C++ 8.0
Description : Demo how to trim string by other method.
Release : 11/18/2006
*/
#include <string>
#include <iostream>
#include <cwctype>
template <class T>
std::basic_string<T>& trim(std::basic_string<T>&);
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;
}
template <class T>
std::basic_string<T>& trim(std::basic_string<T>& s)
{
if (s.empty()) {
return s;
}
std::basic_string<T>::iterator c;
// Erase whitespace before the string
for (c = s.begin(); c != s.end() && iswspace(*c++);); s.erase(s.begin(), --c);
// Erase whitespace after the string
for (c = s.end(); c != s.begin() && iswspace(*--c);); s.erase(++c, s.end());
return s;
}
- 去除C++String的首尾空格
- 去除C++String的首尾空格
- 去除C++String的首尾空格
- 去除C++String的首尾空格
- [C++]去除sting首尾空格
- 去除字符串首尾的空格
- js---在前端开发中,如何通过正则表达式去除字符串string首尾的空格,JavaScript正则去除首尾空格
- c\c++语言去除字符串首尾空格
- C语言实现一个去除字符串中的首尾空格,字母中间有多个空格的去除多余的,剩余一个空格
- sql函数去除字符串首尾的空格
- 用JavaScript去除字符串的首尾空格。
- 去除字符串中首尾的空格
- 去除字符串的首尾空格(全角,半角)
- php 去除字符串首尾的空格
- 去除字符串的首尾空格字符
- 去除字符串首尾空格
- 如何c++去除string字符串首尾的\n,\r,\t,空格?
- NT_iOS笔记—去除string首尾空格、换行
- 比RBAC更好的权限认证方式(Auth类认证)
- wikioi 1076 排序
- uva6467
- uva6470
- 链式结构实现二叉树
- 去除C++String的首尾空格
- 面试算法(二十七)字符串的排列
- leetcode Max Points on a Line
- 数组实现二叉树
- 剑指offer 面试题11 数值的整数次方
- UVALive 6465
- Comparable和Comparator用法及区别
- 链式结构实现二叉查找树(二叉排序树)
- android ActionBar小结