boost库中的字符串算法查找、切割、替换、删除、合并、大小写转换等等详解

零、小序

字符串操作是每一个程序员几乎每天都要进行的工作,很多的开发工作中都要用到字符串的操作,无论是网络通讯、界面显示还是写日志等操作,大多数程序员都喜欢搞成字符串的形式来进行操作。标准的C++对字符串的操作已经提供了很多方法,但还是有很多不尽人意的地方,例如对字符串切割,大小写转换、替换、删除等等操作,使用boost进行处理会更加的方便,boost库提供的支持更加的齐全,没有boost库做不到的,只有你想不到的!

一、大小写转换

1、大小写转换函数

boost提供的大小写转换函数有boost::algorithm::to_upper_copy和boost::algorithm::to_lower_copy、boost::algorithm::to_upper和boost::algorithm::to_lower这两组大小写转换的形式。前一组的大小写转换不会改变原来的字符串,会返回一个原来字符串的拷贝,后面一组大小写转换会改变原来的字符串的大小写。

细心的朋友会发现上面这两组大小写转换会提供的有两个参数,第一个是传入要转换的字符串,第二个是有关区域设置的,这个区域设置一般默认就行,除非你开发的软件具有区域性,比如开发的软件给外国人使用,你可能需要设置成那个国家的区域标志,以适合那个国家的文化需要。

2、大小写代码示例

// BoostStringAlgorithms.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

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

using namespace std;
using namespace boost;

int main()
{
   
	cout << "-------------------boost库大小写转换------------------" << endl;
	string tmpStrUpper = "HELLO,I'M ISMILELI";
	string tmpStrLower = "hello,i'm ismileli";

	cout << "-------------------打印原来字符串的值------------------" << endl;
	cout << "tmpStrUpper:" << tmpStrUpper << endl;
	cout << "tmpStrLower:" << tmpStrLower << endl;

	cout << "-------------------使用*_copy转换大小写------------------" << endl;
	string upperToLowerStr = boost::algorithm::to_lower_copy(tmpStrUpper);
	string lowerToUpperStr = boost::algorithm::to_upper_copy(tmpStrLower);
	cout << "tmpStrUpper:" << tmpStrUpper << endl;
	cout << "tmpStrLower:" << tmpStrLower << endl;
	cout << "upperToLowerStr:" << upperToLowerStr << endl;
	cout << "lowerToUpperStr:" << lowerToUpperStr << endl;

	cout << "-------------------使用不带后缀*_copy转换大小写------------------" << endl;
	boost::algorithm::to_lower(tmpStrUpper); // 没有返回值
	boost::algorithm::to_upper(tmpStrLower);
	cout << "tmpStrUpper:" << tmpStrUpper << endl;
	cout << "tmpStrLower:" << tmpStrLower << endl;

    std::cout << "Hello World!\n";
	getchar();
}

运行结果:
在这里插入图片描述

二、删除

1、删除函数

boost库提供了众多的字符串删除函数,并且提供了很多版本供使用,例如以i开头的用来区分大小写敏感、以_copy结尾的以不改变原来的字符串等,以满足使用者不同的需求。

boost库提供的删除函数如下:
erase_first:删除在字符串中第一个出现的字符串。
erase_last:删除在字符串中最后一个出现的字符串。
erase_nth:删除在字符串中第n个出现的字符串。
erase_all:删除在字符串中所有出现的字符串。
erase_head:删除输入的开头。
erase_tail:删除输入的结尾。

2、删除代码示例

// BoostStringAlgorithms.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

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

using namespace std;
using namespace boost;

int main()
{
   
	cout << "-------------------boost库字符串删除------------------" << endl;
	string tmpStrErase = "Hello!Hello!I'm ISmileLi!Hello!Hello!I'm ISm
  • 5
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值