`
boisterous
  • 浏览: 62784 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类

boost trim

阅读更多
boost 字符串算法解密 修剪(trim.hpp)

     trim 算法库中是用于修剪字符串的:



trim_left_copy_if()

trim_left_if()

trim_left_copy()

trim_left()

trim_right_copy_if()

trim_right_if()

trim_right_copy()

trim_right()

trim_copy_if()

trim_if()

trim_copy()

trim()

    第一组

绿色

表示修剪字符串左端的空格(含 _if 的代表断言为真的字符)。



    第二组

黄色

的表示修剪字符串右端的空格 (含_if 的代表断言为真的字符)。



    第三组

紫色

的表示删除(修剪)两端。 (_if 含义同上)


一个简单的例子:

#pragma warning( disable : 4819 )

#include <iostream>
#include <algorithm>
#include <string>
#include <boost/algorithm/string.hpp>

using namespace std;

// 输出一个\才好看到字符串结尾的地方
#define PrintStr( str ) cout<< #str <<"="<< str <<"\\"<< endl

int main()
{
    string str( " Hello World! " );
    PrintStr( str );

    string str1 = boost::trim_left_copy( str );
    PrintStr( str );
    PrintStr( str1 );

    str1 = str;
    PrintStr( str1 );
    boost::trim_left( str1 );
    PrintStr( str1 );

    boost::trim_left_if( str1,boost::algorithm::is_upper() );
    PrintStr( str1 );
    str1 = str;
    boost::trim_left_if( str1,boost::algorithm::is_upper() );
    PrintStr( str1 );

    str1 = boost::trim_copy( str );
    PrintStr( str );
    PrintStr( str1 );

    boost::trim( str );
    boost::trim_if( str, boost::algorithm::is_lower() );
    PrintStr( str );
    boost::trim_if( str, boost::algorithm::is_alpha() );
    PrintStr( str );

    return 0;
}
    上面所有的

_copy

版本的函数都是基于这种模板的:



template<typename SequenceT, typename PredicateT>

SequenceT trim_left_copy_if(const SequenceT & Input, PredicateT IsSpace);

    这种重载能够为 trim 提供强安全保证,下面还有一种重载,这在 trim 算法集中只有

_copy_if

版 本才有:



template<typename OutputIteratorT, typename RangeT,  typename PredicateT>

OutputIteratorT trim_left_copy_if(OutputIteratorT Output,   const RangeT & Input,

  PredicateT IsSpace);

下面是这样的一个例子:

int main()

    string str( " Hello World! " );
    PrintStr( str );
    string ss;
    back_insert_iterator<string> it =
        boost::algorithm::trim_left_copy_if( back_insert_iterator<string>(ss) ,
                boost::make_iterator_range( str ),boost::algorithm::is_space() );
    PrintStr( str );
    PrintStr( ss );
    *it = 'H';
    PrintStr( ss );

    ss.assign( str.begin(),str.end() );

    PrintStr( ss );
    string::iterator pos =
        boost::algorithm::trim_copy_if( ss.begin(), boost::make_iterator_range( str ),
                boost::algorithm::is_space() );
    PrintStr( ss );

    cout<< *pos << endl;

    cout<< distance( ss.begin(),pos )<< endl;

    return 0;
}
输出: str= Hello World! \ str= Hello World! \ ss=Hello World! \ ss=Hello World! H\ ss= Hello World! \ ss=Hello World!! \ H 0 请按任意键继续. . .

    虽然加上命名空间限制,每个函数看起来都是那么长,但是用起来实际上还是非常简单的。
分享到:
评论

相关推荐

    trim函数.txt

    trim函数.txt

    电源模块Trim引脚的应用.pdf

    电源模块Trim引脚的应用pdf,电源模块Trim引脚的应用

    C语言实现trim函数

    C语言实现trim函数,函数名:trim,参数:源字符串、目的字符串...

    trimssd Xp实现trim

    TrimSSD是一款可以在任何Windows操作系统对SSD进行TRIM操作的软件 支持重启后对系统盘进行TRIM操作。 速度超快,完胜任何同类软件。 仅支持NTFS文件系统,暂不支持FAT32。 WindowsXP M4-128G 测试通过。

    trim函数.xls

    trim函数.xls

    Trim()的含义

    Trim()的含义,及作用。

    js 自定义trim去除字符串左右杂质

    JAVA中String 有trim()方法去除字符串左右的空格,js中自定义trim方法,去除字符串左右的杂质,可以去除逗号、句号、空格等等特殊字符。

    Trim Enabler破解版

    Trim Enabler 破解版,亲测可用。

    前端trim()方法使用案例

    trim()方法

    js_trim()十二种实现.txt

    js_trim()十二种实现.txtjs_trim()十二种实现.txtjs_trim()十二种实现.txtjs_trim()十二种实现.txt

    TrimEnabler 开启trim支持

    TrimEnabler 开启trim支持

    Trim Enabler_4.2_WaitsUn.com.dmg

    Trim Enabler v4.2 黑苹果,用来开启SSD Trim。

    javascript trim函数

    javascript trim函数。在javascript中,对于字符串可以使用trim去除末尾和开头的多余空白字符。 方法有两种,分别是普通字符串处理法和正则表达式法。根据需要自选。

    任何Windows操作系统对SSD进行TRIM操作的软件

    TrimSSD是一款可以在任何Windows操作系统对SSD进行TRIM操作的软件 支持重启后对系统盘进行TRIM操作。 速度超快,完胜任何同类软件。 仅支持NTFS文件系统,暂不支持FAT32。 WindowsXP M4-128G 测试通过。 *注意...

    MP3trim pro

    mp3Trim是一个小巧方便的MP3修整截取工具,主要功能是将MP3中您不要的部分(从头部或尾部)去掉,只保留精华所在;它的静音检测功能也很强大,您可以利用这个功能把MP3文件中多余出来的静音部分剪切掉;也可以用它对...

    js设置兼容trim函数

    trim()在Ie中不支持,需要在使用钱加上这句话。

    开SSD Trim在OSX10.10

    一个不错的开Trim,避免打一堆命令,试过可以的 一个不错的开Trim,避免打一堆命令,试过可以的

    通用 SSD Trim 工具

    1,威刚SSD 工具 单文件运行 支持任何SSD 不分品牌 2,TrimSSD是一款可以在任何Windows操作系统对SSD进行TRIM操作的软件

    mp3剪辑trim-raindy.rar

    mp3剪辑...trim-raindy.rar

    js trim 函数

    javascript 的 trim 函数的实现,去掉字符串的左右空格,由于只使用了String的原生函数,没有使用正则,运算速度极快,是0毫秒级别的,推荐大家使用.

Global site tag (gtag.js) - Google Analytics