Kyle Chen's Blog

Action speaks louder than Words

0%

【C++】C++中的boost库—String_Algorithm_Library

  • 本篇文章讲讲Boost库中String_Algorithm_Library常用的那些接口
  • 参考

概述

  • <boost/algorithm/string/case_conv.hpp>:提供字符串大小写转换函数,包括 to_lower()to_upper()to_title()to_lower_copy()to_upper_copy()to_title_copy()
  • <boost/algorithm/string/classification.hpp>:提供用于判断字符分类的函数对象,如 is_any_ofis_alphais_digitis_space 等。
  • <boost/algorithm/string/compare.hpp>:提供字符串比较函数,包括 is_equal()ilexicographical_compare()iless()ilexicographical_compare()
  • <boost/algorithm/string/concept.hpp>:定义了用于实现字符串算法及其特征的概念、标准化和接口文档。
  • <boost/algorithm/string/constants.hpp>:定义一些与字符串算法相关的常量,如空格字符、单引号、双引号等。
  • <boost/algorithm/string/erase.hpp>:提供字符串删除函数,包括 erase_first()erase_nth()erase_all()
  • <boost/algorithm/string/find.hpp>:提供字符串查找函数,包括 find_first()find_last()find_nth()find_all()
  • <boost/algorithm/string/find_format.hpp>:提供字符串查找并替换函数,包括 replace_first()replace_last()replace_nth()replace_all()
  • <boost/algorithm/string/find_iterator.hpp>:提供一系列查找字符串的迭代器,如 find_iteratortoken_iteratorsplit_iterator
  • <boost/algorithm/string/finder.hpp>:定义了在字符串中查找子串的算法,包括简单查找算法和 KMP 算法。
  • <boost/algorithm/string/formatter.hpp>:定义了用于格式化输出字符串的函数对象,如 repeat_formatterrange_formatterjoin_formatter
  • <boost/algorithm/string/iter_find.hpp>:定义了一个类模板 iter_find_t,可以在字符串中查找子串并返回迭代器。
  • <boost/algorithm/string/join.hpp>:提供字符串连接函数,包括 join()join_if()concat()
  • <boost/algorithm/string/predicate.hpp>:提供字符串谓词函数,包括 starts_with()ends_with()contains()equals()iequals()iless()
  • <boost/algorithm/string/regex.hpp>:提供与正则表达式相关的字符串函数,包括 regex_match()regex_search()regex_replace()
  • <boost/algorithm/string/regex_find_format.hpp>:提供使用正则表达式查找并替换字符串的函数,包括 regex_replace()regex_transform()
  • <boost/algorithm/string/replace.hpp>:提供替换字符串函数,包括 replace_first()replace_last()replace_nth()replace_all()
  • <boost/algorithm/string/sequence_traits.hpp>:定义了判断序列类型的函数模板 is_sequence,用于判断一个类型是否为序列。
  • <boost/algorithm/string/split.hpp>:提供字符串分割函数,包括 split()split_if()splitted()
  • <boost/algorithm/string/std_containers_traits.hpp>:定义了用于实现 STL 容器的特化模板 sequence_traits
  • <boost/algorithm/string/trim.hpp>:提供字符串去除空格函数,包括 trim()trim_left()trim_right()trim_copy()
  • <boost/algorithm/string/trim_all.hpp>:提供字符串去除所有空格函数,包括 trim_all()trim_all_copy()

0.<boost/algorithm/string/case_conv.hpp>

  • to_lower():将一个字符串转换为全小写格式。
  • to_upper():将一个字符串转换为全大写格式。
  • to_title():将一个字符串所有单词的首字母转换为大写。
  • to_lower_copy():生成一个全小写格式的副本。
  • to_upper_copy():生成一个全大写格式的副本。
  • to_title_copy():生成一个标题格式的副本。

1. <boost/algorithm/string/compare.hpp>

该头文件提供字符串的比较函数。主要包括以下函数:

  • is_equal():用于判断两个字符串是否相等,可以指定比较大小写敏感或不敏感。
  • ilexicographical_compare():用于比较字符串的字典序,可以指定比较大小写敏感或不敏感。
  • iless():用于判断一个字符串是否小于另一个字符串,可以指定比较大小写敏感或不敏感。
  • ilexicographical_compare():用于比较字符串的字典序,可以指定比较大小写敏感或不敏感。

2. <boost/algorithm/string/erase.hpp>

该头文件提供了删除字符串子串的函数。主要包括以下函数:

  • erase_first():用于删除第一个出现的指定子串。
  • erase_nth():用于删除第 n 个出现的指定子串。
  • erase_all():用于删除所有出现的指定子串。

3. <boost/algorithm/string/find.hpp>

该头文件提供了查找字符串子串的函数。主要包括以下函数:

  • find_first():用于查找第一个出现的指定子串,返回子串起始位置和结束位置。
  • find_last():用于查找最后一个出现的指定子串,返回子串起始位置和结束位置。
  • find_nth():用于查找第 n 个出现的指定子串,返回子串起始位置和结束位置。
  • find_all():用于查找所有出现的指定子串,返回子串起始位置和结束位置的迭代器。

4. <boost/algorithm/string/find_format.hpp>

该头文件提供了查找并替换字符串子串的函数。主要包括以下函数:

  • replace_first():用于查找并替换第一个出现的指定子串。
  • replace_last():用于查找并替换最后一个出现的指定子串。
  • replace_nth():用于查找并替换第 n 个出现的指定子串。
  • replace_all():用于查找并替换所有出现的指定子串。

5. <boost/algorithm/string/finder.hpp>

该头文件提供了在字符串中查找子串的算法。其中包含了一些简单查找算法和 KMP 算法。

6. <boost/algorithm/string/join.hpp>

该头文件提供了连接多个字符串为一个字符串的函数。主要包括以下函数:

  • join():用于连接多个字符串,并添加指定的分隔符。
  • join_if():用于只连接满足指定谓词条件的字符串,并添加指定的分隔符。
  • concat():用于连接两个字符串。

7. <boost/algorithm/string/split.hpp>

该头文件提供了将字符串分割为多个子串的函数。主要包括以下函数:

  • split():用于按指定分隔符分割字符串,并将结果存入一个容器中。
  • split_if():用于根据指定谓词函数判断是否需要分割,并将结果存入一个容器中。
  • splitted():用于返回按指定分隔符分割后的结果,作为一个可迭代对象使用。

8. <boost/algorithm/string/trim.hpp>

该头文件提供了去除字符串首尾空白字符的函数。主要包括以下函数:

  • trim():用于去除字符串首尾空白字符。
  • trim_left():用于去除字符串左侧空白字符。
  • trim_right():用于去除字符串右侧空白字符。
  • trim_copy():用于返回去除首尾空白字符后的字符串副本。

9. <boost/algorithm/string/regex.hpp>

该头文件提供了与正则表达式相关的函数。主要包括以下函数:

  • regex_match():用于检测一个字符串是否符合正则表达式的模式。
  • regex_search():用于在一个字符串中查找匹配正则表达式模式的子串。
  • regex_replace():用于查找并替换匹配正则表达式模式的子串。

10. <boost/algorithm/string/regex_find_format.hpp>

该头文件提供了使用正则表达式进行查找和替换的函数。主要包括以下函数:

  • regex_replace():用于通过正则表达式查找并替换字符串中的相应子串。
  • regex_transform():用于通过正则表达式查找某些子串并返回一个格式化后的副本。

11. <boost/algorithm/string/replace.hpp>

头文件。该头文件提供了替换字符串子串的函数,主要包括以下函数:

  • replace_first_copy():用于替换第一个出现的指定子串,并返回替换后的字符串副本。
  • replace_last_copy():用于替换最后一个出现的指定子串,并返回替换后的字符串副本。
  • replace_nth_copy():用于替换第 n 个出现的指定子串,并返回替换后的字符串副本。
  • replace_all_copy():用于替换所有出现的指定子串,并返回替换后的字符串副本。

此外,还有以下函数可以直接在原字符串上进行替换操作:

  • replace_first():用于替换第一个出现的指定子串。
  • replace_last():用于替换最后一个出现的指定子串。
  • replace_nth():用于替换第 n 个出现的指定子串。
  • replace_all():用于替换所有出现的指定子串。