Boost库:字符串操作

结合Boost官网

由于这一章内容过多,我将采用四个小章,精简原文四个小部分内容。

第四小章还包含了题目及讲解。

区域设置:

 
  1. setlocale(LC_ALL,“”)

  2. locale::global(std::locale("German")); //设置全局区域德语环境

字符串操作:

一、将字符串所有字符转成大写

 
  1. boost::algorithm::to_upper("")//自身转化

  2. boost::algorithm::to_upper_copy("")//返回转化的结果,自身不转化

转成小写

 
  1. boost::algorithm::to_lower("")

  2. boost::algorithm::to_lower_copy("")

二、删除特定字符串

 
  1. boost::algorithm::erase_first_copy(s,"") //从s删除第一个匹配的字符串

  2. boost::algorithm::erase_nth_copy(s,"",n) //从s删除第n个匹配的字符串

  3. boost::algorithm::erase_last_copy(s, "") //从s删除最后匹配的字符串

  4. boost::algorithm::erase_all_copy(s, "") //从s删除所有匹配的字符串

  5. boost::algorithm::erase_head_copy(s, n) //从s删除前n个字符

  6. boost::algorithm::erase_tail_copy(s, n) //从s删除后n个字符

三、查找特定字符串

与二相同使用方法,将erase替换成find即可。

四、字符串迭代器

存储字符串每个字符。

 
  1. boost::iterator_range<string::iterator> r = boost::algorithm::find_first(s,"");

  2. for_each(r.begin(), r.end(), [](char c){cout << c << endl;});

五、添加字符串

 
  1. vector<string> v;

  2. v.push_back("hello");

  3. v.push_back("world");

  4. boost::algorithm::join(v, ""); //根据第二个参数将这些字符串连接起来。

六、替换字符串

 
  1. boost::algorithm::replace_first_copy(s,"","") //从s替换第一个匹配的字符串成第三个参数

  2. boost::algorithm::replace_nth_copy(s,"",n,"") //从s替换第n个匹配的字符串成第四个参数

  3. boost::algorithm::replace_last_copy(s, "","") //从s替换最后匹配的字符串成第三个参数

  4. boost::algorithm::replace_all_copy(s, "","") //从s替换所有匹配的字符串成第三个参数

  5. boost::algorithm::replace_head_copy(s, n,"") //从s替换前n个字符成第三个参数

  6. boost::algorithm::replace_tail_copy(s, n,"") //从s替换后n个字符成第三个参数

七、裁剪字符串

自动裁剪:(空格或者结束符)

 
  1. boost::algorithm::trim_left_copy(s)//去除左边

  2. boost::algorithm::trim_right_copy(s)//去除右边

  3. boost::algorithm::trim_copy(s)//上两个效果合

特定裁剪:指定字符串裁剪

 
  1. boost::algorithm::trim_left_copy_if(s, boost::algorithm::is_any_of(""))//去除左边

  2. boost::algorithm::trim_right_copy_if(s, boost::algorithm::is_any_of(""))//去除右边

  3. boost::algorithm::trim_copy_if(s, boost::algorithm::is_any_of(""))//上两个效果合

函数boost::algorithm::is_digit() 返回的谓词在字符为数字时返回布尔值 。

裁剪谓词是数字的字符串:

 
  1. boost::algorithm::trim_left_copy_if(s, boost::algorithm::is_digit())//去除左边

  2. boost::algorithm::trim_right_copy_if(s, boost::algorithm::is_digit())//去除右边

  3. boost::algorithm::trim_copy_if(s, boost::algorithm::is_digit())//上两个效果合

八、比较字符串

 
  1. boost::algorithm::starts_with(s, "")//比较开头

  2. boost::algorithm::ends_with(s, "")//比较结尾

  3. boost::algorithm::contains(s,"" )//比较是否存在

  4. boost::algorithm::lexicographical_compare(s,"")/比较区间是否小于第二个参数

返回为bool型 

九、分割字符串

boost::algorithm::split(s, 谓词);

谓词:判定分割点

例如:boost:algorithm::is_space() //在每个空格字符处分割字符串

十、大小写忽略函数

一般是上述函数原型前有i区分

例如 boost::algorithm::erase_all_copy() 对应 boost::algorithm::ierase_all_copy()。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值