好的C++字符串操作库

Vie*_*iet 37 c++ string

我很抱歉火焰std :: string和std :: wstring.它们非常有限,远非线程安全.性能方面,它们也不是那么好.我想念简单的功能:

  1. 将字符串拆分为数组/向量/列表
  2. 简单直观的不区分大小写查找和替换
  3. 支持i18n而不用担心字符串或wstring
  4. 转换为int,float,double
  5. 转换为UTF-8,UTF-16和其他编码
  6. 线程安全/折返
  7. 占地面积小,无依赖性
  8. 高度便携和跨平台

我发现Qt QString很有用,还发现了CBString http://bstring.sourceforge.net/bstrFAQ.shtml

还有其他建议和比较吗?谢谢.

小智 26

C++ String Toolkit(StrTk)库是一个免费的库,包含用于C++语言的强大,优化和可移植的通用字符串处理算法和过程.该库旨在易于使用并集成在现有代码中.

该库具有以下功能:

  • 通用字符串标记生成器和标记迭代器
  • 拆分例程
  • 用户指定的分隔符和拆分器策略(简单和基于正则表达式等)
  • 数据与十六进制和base-64之间的转换
  • 就地删除和替换例程
  • 外卡匹配和全球化
  • 快速2D令牌网格处理
  • 可扩展的字符串处理模板

还有更多......

兼容的C++编译器:

  • GCC 4.0+
  • 英特尔C++编译器9.0+
  • Microsoft Visual C++ 8.0+
  • Comeau C/C++ 4.1+

资源:

  • 很好找.谢谢:)我来看看. (22认同)

Joh*_*n T 11

C++字符串算法库升压拥有几乎所有你需要的功能.

  • 谢谢约翰.在发布之前我已经完成了我的作业.它既不简单也不直观.我没有分割功能,因为它没有返回空字符串的选项. (3认同)

Ste*_*dit 10

我不确定我是否同意.由于开销,字符串确实不应该是线程安全的,除非引用计数(如果适用).您想要的大多数其他功能会将字符串转换为垃圾驳船.同样,删除依赖项将会消除它们与流良好协作的能力.

我建议的一件事是我们可以从不可变的字符串类中受益,特别是没有内存所有权或终止的字符串类.我以前写过这些,他们可以非常有帮助.

  • 但是他们在C :)中有底层引擎.你的理由不是一个好的,以避免在C&C++中拥有一个强大而强大的字符串操作库. (4认同)