boost库中字符串算法查找、剪切、替换、删除、合并、大小写转换等详解
零、小订单
字符串操作是每个程序员几乎每天都会做的工作。 字符串操作用于许多开发任务中。 无论是网络通信、界面展示,还是日志编写,大多数程序员都喜欢这么做。 以字符串的形式进行操作。 标准C++已经提供了很多字符串操作的方法,但是还有很多不尽如人意的地方,比如字符串切割、大小写转换、替换、删除等,使用boost来处理会更方便。 boost库提供的支持更加完善。 没有boost库做不到的事,只有你想不到的事!
1. 大小写转换 1. 大小写转换功能
boost提供的大小写转换函数包括boost::::和boost::::、boost::::和boost::::。 第一组大小写转换不会更改原始字符串,但会返回原始字符串的副本。 后一组大小写转换将更改原始字符串的大小写。
细心的朋友会发现,上面两组大小写转换提供了两个参数。 第一个是传入要转换的字符串,第二个是关于区域设置。 这个区域设置一般默认就可以了,除非你开发的软件是区域性的。 例如,如果你开发的软件供外国人使用,你可能需要将其设置为该国家的区旗,以适应该国家的文化需求。
2.大小写代码示例
// BoostStringAlgorithms.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include
#include
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();
}
运行结果:
2.删除 1.删除功能
boost库提供了众多的字符串删除函数,并且提供了很多版本可供使用,比如以i开头的区分大小写,以_copy结尾的不改变原字符串等等,以满足不同用户的需求。 需要。
boost库提供的删除函数如下:
:删除字符串中第一次出现的字符串。
:删除字符串中最后一次出现的字符串。
:删除字符串中第n次出现的字符串。
:删除字符串中所有出现该字符串的地方。
:删除输入的开头。
:删除输入的末尾。
2.删除代码示例
// BoostStringAlgorithms.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//
#include
#include
using namespace std;
using namespace boost;
int main()
{
cout << "-------------------boost库字符串删除------------------" << endl;
string tmpStrErase = "Hello!Hello!I'm ISmileLi!Hello!Hello!I'm ISm