很多时候我都想在自已的代码中全部使用std::string代替MS的CString来保证我的程序在未来易于移植,但老实说CString比std::string好用很多,每每还是被诱惑了;再看看C#的string,用起来感觉更好。不过有了这个库 我可以基本抵制住诱惑了...
#include <boost/algorithm/string.hpp>
很多时候我都想在自已的代码中全部使用std::string代替MS的CString来保证我的程序在未来易于移植,但老实说CString比std::string好用很多,每每还是被诱惑了;再看看C#的string,用起来感觉更好。不过有了这个库 我可以基本抵制住诱惑了 :D 。
来看看有哪些不错的东西,文档上列出了下面的目录(我改变了一下顺序,有些基本的,大家都能猜到是什么,这里就不多说了)
1.Trimming
2.Case conversion
3.Replace Algorithms
4.Find Iterator
5.Find algorithms
6.Predicates and Classification
7.Split
对6.Predicates and Classification和7.Split我是比较感兴趣的,先看看函数的列表(函数名有前缀i的是指对大 小写不敏感)。
6.1.Predicates
starts_with // 'Starts with' predicate
istarts_with // 'Starts with' predicate ( case insensitive )
ends_with
iends_with
contains
icontains
equals
iequals
all
6.2.Classification
类属断言被加入到库中主要是为了在使用算法trim()和all()可以有一些便利 :-),其实差不多形式的函数STL都有,但都是对字符而言。
is_space // 空格
is_alnum // 字母和数字
is_alpha // 字母
is_cntrl // 控制字符
is_digit // 数字
is_graph // 可打印字符(不含空格)
is_lower // 小写
is_print // 可打印字符(含空格)
is_punct // 标点
is_upper // 大写
is_xdigit // 16进制数字
is_any_of //
...
例:



例:







7.Split
find_all
ifind_all
split
split是一个我很喜欢的功能,C#中的string就有这个功能,下面是一段msdn中C#的代码







用起来感觉不错的。 现在有了这个库我们也可以这样使用








感觉与上面的差不多吧,呵,当样,这样写也不错











到这里,可以说基本的操作都有了,也比较好用。只是由于不是跟std::string放在一起,使用上稍稍感到麻烦,不过用名字空间,现在的IDE都能有效的帮助你,如果你是用VI那就另说了 :-)
前面大家看到不少功能,但还有一个重要的string操作大家没看到,就是CString中常用的format方法 boost也提供了一个,但感觉上是比较变态的,下篇文章会做一个介绍。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具