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_of、is_alpha、is_digit、is_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_iterator、token_iterator 和 split_iterator。
  • <boost/algorithm/string/finder.hpp>:定义了在字符串中查找子串的算法,包括简单查找算法和 KMP 算法。
  • <boost/algorithm/string/formatter.hpp>:定义了用于格式化输出字符串的函数对象,如 repeat_formatter、range_formatter 和 join_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():用于替换所有出现的指定子串。