MSTL 1.4.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
字符串操作

MSTL字符串操作函数的实现 更多...

函数

template<typename CharT>
constexpr CharT * string_copy (CharT *MSTL_RESTRICT dest, const CharT *MSTL_RESTRICT src) noexcept
 复制字符串
template<typename CharT>
constexpr CharT * string_copy (CharT *MSTL_RESTRICT dest, const CharT *MSTL_RESTRICT src, const size_t count) noexcept
 复制指定长度的字符串
template<typename CharT>
constexpr CharT * string_copy_offset (CharT *MSTL_RESTRICT dest, const CharT *MSTL_RESTRICT src) noexcept
 复制字符串并返回指向结尾的指针
template<typename CharT>
constexpr CharT * string_copy_offset (CharT *MSTL_RESTRICT dest, const CharT *MSTL_RESTRICT src, const size_t count) noexcept
 复制指定长度的字符串并返回指向结尾的指针
template<typename CharT>
MSTL_PURE_FUNCTION constexpr int string_compare (const CharT *dest, const CharT *src) noexcept
 比较两个字符串
template<typename CharT>
MSTL_PURE_FUNCTION constexpr int string_compare (const CharT *dest, const CharT *src, const size_t count) noexcept
 比较两个字符串的前n个字符
template<typename CharT>
MSTL_PURE_FUNCTION constexpr int string_compare_ignore_case (const CharT *s1, const CharT *s2)
 忽略大小写比较两个字符串
template<typename CharT>
MSTL_PURE_FUNCTION constexpr int string_compare_ignore_case (const CharT *s1, const CharT *s2, const size_t count) noexcept
 忽略大小写比较两个字符串的前n个字符
template<typename CharT>
MSTL_PURE_FUNCTION constexpr size_t string_length (const CharT *str) noexcept
 计算字符串长度
template<typename CharT>
MSTL_PURE_FUNCTION constexpr size_t string_length (const CharT *str, const size_t max_len) noexcept
 计算字符串的最大长度
template<typename CharT>
MSTL_PURE_FUNCTION constexpr const CharT * string_find (const CharT *str, const CharT chr) noexcept
 查找字符在字符串中首次出现的位置
template<typename CharT>
MSTL_PURE_FUNCTION constexpr const CharT * string_find (const CharT *str, const CharT chr, const size_t count) noexcept
 在前n个字符中查找字符首次出现的位置
template<typename CharT>
MSTL_PURE_FUNCTION constexpr const CharT * string_find_last (const CharT *str, const CharT chr) noexcept
 查找字符在字符串中最后出现的位置
template<typename CharT>
MSTL_PURE_FUNCTION constexpr CharT * string_find_any (CharT *str, const CharT *accept) noexcept
 查找字符串中第一个出现在指定字符集中的字符
template<typename CharT>
MSTL_PURE_FUNCTION constexpr const CharT * string_find_pattern (const CharT *dest, const CharT *src) noexcept
 查找子字符串在字符串中首次出现的位置
template<typename CharT>
MSTL_PURE_FUNCTION constexpr const CharT * string_find_pattern_ignored_case (const CharT *dest, const CharT *src) noexcept
 忽略大小写查找子字符串在字符串中首次出现的位置
template<typename CharT>
MSTL_PURE_FUNCTION constexpr size_t string_span_in (const CharT *str, const CharT *accept) noexcept
 计算字符串开头包含在指定字符集中的字符数
template<typename CharT>
MSTL_PURE_FUNCTION constexpr size_t string_span_not_in (const CharT *str, const CharT *reject) noexcept
 计算字符串开头不包含在指定字符集中的字符数
template<typename CharT>
constexpr CharT * string_set (CharT *str, const CharT value) noexcept
 将字符串中的所有字符设置为指定值
template<typename CharT>
constexpr CharT * string_set (CharT *str, const CharT value, const size_t count) noexcept
 将字符串中的前n个字符设置为指定值
template<typename CharT>
constexpr CharT * string_reverse (CharT *str) noexcept
 反转字符串
template<typename CharT>
constexpr CharT * string_concatenate (CharT *MSTL_RESTRICT dest, const CharT *MSTL_RESTRICT src) noexcept
 连接两个字符串
template<typename CharT>
constexpr CharT * string_concatenate (CharT *MSTL_RESTRICT dest, const CharT *MSTL_RESTRICT src, const size_t count) noexcept
 连接源字符串的前n个字符到目标字符串

详细描述

MSTL字符串操作函数的实现

函数说明

◆ string_compare() [1/2]

template<typename CharT>
MSTL_PURE_FUNCTION constexpr int string_compare ( const CharT * dest,
const CharT * src )
constexprnoexcept

比较两个字符串

模板参数
CharT字符类型
参数
dest第一个字符串指针
src第二个字符串指针
返回
比较结果
  • 正数:第一个字符串大于第二个
  • 负数:第一个字符串小于第二个
  • 零:两个字符串相等

在文件 memory.hpp494 行定义.

◆ string_compare() [2/2]

template<typename CharT>
MSTL_PURE_FUNCTION constexpr int string_compare ( const CharT * dest,
const CharT * src,
const size_t count )
constexprnoexcept

比较两个字符串的前n个字符

模板参数
CharT字符类型
参数
dest第一个字符串指针
src第二个字符串指针
count要比较的字符数
返回
比较结果

在文件 memory.hpp520 行定义.

引用了 count().

◆ string_compare_ignore_case() [1/2]

template<typename CharT>
MSTL_PURE_FUNCTION constexpr int string_compare_ignore_case ( const CharT * s1,
const CharT * s2 )
constexpr

忽略大小写比较两个字符串

模板参数
CharT字符类型
参数
s1第一个字符串指针
s2第二个字符串指针
返回
比较结果
  • 正数:第一个字符串大于第二个
  • 负数:第一个字符串小于第二个
  • 零:两个字符串相等

在文件 memory.hpp550 行定义.

引用了 _MSTL , 以及 to_lowercase().

◆ string_compare_ignore_case() [2/2]

template<typename CharT>
MSTL_PURE_FUNCTION constexpr int string_compare_ignore_case ( const CharT * s1,
const CharT * s2,
const size_t count )
constexprnoexcept

忽略大小写比较两个字符串的前n个字符

模板参数
CharT字符类型
参数
s1第一个字符串指针
s2第二个字符串指针
count要比较的字符数
返回
比较结果

在文件 memory.hpp576 行定义.

引用了 _MSTL, count() , 以及 to_lowercase().

◆ string_concatenate() [1/2]

template<typename CharT>
CharT * string_concatenate ( CharT *MSTL_RESTRICT dest,
const CharT *MSTL_RESTRICT src )
constexprnoexcept

连接两个字符串

模板参数
CharT字符类型
参数
dest目标字符串指针
src源字符串指针
返回
目标字符串指针
注解
目标字符串指针必须有足够空间

在文件 memory.hpp932 行定义.

◆ string_concatenate() [2/2]

template<typename CharT>
CharT * string_concatenate ( CharT *MSTL_RESTRICT dest,
const CharT *MSTL_RESTRICT src,
const size_t count )
constexprnoexcept

连接源字符串的前n个字符到目标字符串

模板参数
CharT字符类型
参数
dest目标字符串指针
src源字符串指针
count要连接的最大字符数
返回
目标字符串指针
注解
目标字符串指针必须有足够空间

在文件 memory.hpp958 行定义.

引用了 count().

◆ string_copy() [1/2]

template<typename CharT>
CharT * string_copy ( CharT *MSTL_RESTRICT dest,
const CharT *MSTL_RESTRICT src )
constexprnoexcept

复制字符串

模板参数
CharT字符类型
参数
dest目标字符串指针
src源字符串指针
返回
目标字符串指针
注解
使用restrict关键字优化,要求源和目标内存不重叠,否则将产生未定义行为。

将源字符串复制到目标缓冲区,包括终止空字符。 如果任一指针为空,返回空指针。

在文件 memory.hpp378 行定义.

被这些函数引用 exception::exception().

◆ string_copy() [2/2]

template<typename CharT>
CharT * string_copy ( CharT *MSTL_RESTRICT dest,
const CharT *MSTL_RESTRICT src,
const size_t count )
constexprnoexcept

复制指定长度的字符串

模板参数
CharT字符类型
参数
dest目标字符串指针
src源字符串指针
count要复制的最大字符数
返回
目标字符串指针

复制最多 count 个字符,如果源字符串长度小于 count,用空字符填充剩余位置。 如果源字符串长度大于等于 count,不会自动添加终止空字符。

注解
使用restrict关键字优化,要求源和目标内存不重叠,否则将产生未定义行为。

在文件 memory.hpp406 行定义.

引用了 count().

◆ string_copy_offset() [1/2]

template<typename CharT>
CharT * string_copy_offset ( CharT *MSTL_RESTRICT dest,
const CharT *MSTL_RESTRICT src )
constexprnoexcept

复制字符串并返回指向结尾的指针

模板参数
CharT字符类型
参数
dest目标字符串指针
src源字符串指针
返回
指向目标字符串结尾的指针,终止空字符之前
注解
使用restrict关键字优化,要求源和目标内存不重叠,否则将产生未定义行为。

在文件 memory.hpp438 行定义.

◆ string_copy_offset() [2/2]

template<typename CharT>
CharT * string_copy_offset ( CharT *MSTL_RESTRICT dest,
const CharT *MSTL_RESTRICT src,
const size_t count )
constexprnoexcept

复制指定长度的字符串并返回指向结尾的指针

模板参数
CharT字符类型
参数
dest目标字符串指针
src源字符串指针
count要复制的最大字符数
返回
指向目标字符串第 count 个字符的指针
注解
使用restrict关键字优化,要求源和目标内存不重叠,否则将产生未定义行为。

在文件 memory.hpp461 行定义.

引用了 count().

◆ string_find() [1/2]

template<typename CharT>
MSTL_PURE_FUNCTION constexpr const CharT * string_find ( const CharT * str,
const CharT chr )
constexprnoexcept

查找字符在字符串中首次出现的位置

模板参数
CharT字符类型
参数
str字符串指针
chr要查找的字符
返回
指向首次出现位置的指针,未找到或输入为空时返回空指针

在文件 memory.hpp646 行定义.

◆ string_find() [2/2]

template<typename CharT>
MSTL_PURE_FUNCTION constexpr const CharT * string_find ( const CharT * str,
const CharT chr,
const size_t count )
constexprnoexcept

在前n个字符中查找字符首次出现的位置

模板参数
CharT字符类型
参数
str字符串指针
chr要查找的字符
count要搜索的最大字符数
返回
指向首次出现位置的指针

在文件 memory.hpp670 行定义.

引用了 count().

◆ string_find_any()

template<typename CharT>
MSTL_PURE_FUNCTION constexpr CharT * string_find_any ( CharT * str,
const CharT * accept )
constexprnoexcept

查找字符串中第一个出现在指定字符集中的字符

模板参数
CharT字符类型
参数
str字符串指针
accept字符集指针
返回
指向第一个匹配字符的指针,未找到时返回空指针

在文件 memory.hpp715 行定义.

◆ string_find_last()

template<typename CharT>
MSTL_PURE_FUNCTION constexpr const CharT * string_find_last ( const CharT * str,
const CharT chr )
constexprnoexcept

查找字符在字符串中最后出现的位置

模板参数
CharT字符类型
参数
str字符串指针
chr要查找的字符
返回
指向最后出现位置的指针,未找到或输入为空时返回空指针

在文件 memory.hpp693 行定义.

◆ string_find_pattern()

template<typename CharT>
MSTL_PURE_FUNCTION constexpr const CharT * string_find_pattern ( const CharT * dest,
const CharT * src )
constexprnoexcept

查找子字符串在字符串中首次出现的位置

模板参数
CharT字符类型
参数
dest主字符串指针
src子字符串指针
返回
指向子字符串首次出现位置的指针,未找到时返回空指针

在文件 memory.hpp742 行定义.

◆ string_find_pattern_ignored_case()

template<typename CharT>
MSTL_PURE_FUNCTION constexpr const CharT * string_find_pattern_ignored_case ( const CharT * dest,
const CharT * src )
constexprnoexcept

忽略大小写查找子字符串在字符串中首次出现的位置

模板参数
CharT字符类型
参数
dest主字符串指针
src子字符串指针
返回
指向子字符串首次出现位置的指针

在文件 memory.hpp767 行定义.

引用了 _MSTL , 以及 to_lowercase().

◆ string_length() [1/2]

template<typename CharT>
MSTL_PURE_FUNCTION constexpr size_t string_length ( const CharT * str)
constexprnoexcept

计算字符串长度

模板参数
CharT字符类型
参数
str字符串指针
返回
字符串长度,不包含终止空字符

在文件 memory.hpp606 行定义.

◆ string_length() [2/2]

template<typename CharT>
MSTL_PURE_FUNCTION constexpr size_t string_length ( const CharT * str,
const size_t max_len )
constexprnoexcept

计算字符串的最大长度

模板参数
CharT字符类型
参数
str字符串指针
max_len最大搜索长度
返回
字符串长度,不超过max_len

计算字符串长度,但最多检查max_len个字符。

在文件 memory.hpp627 行定义.

◆ string_reverse()

template<typename CharT>
CharT * string_reverse ( CharT * str)
constexprnoexcept

反转字符串

模板参数
CharT字符类型
参数
str字符串指针
返回
反转后的字符串指针

在文件 memory.hpp904 行定义.

引用了 end().

◆ string_set() [1/2]

template<typename CharT>
CharT * string_set ( CharT * str,
const CharT value )
constexprnoexcept

将字符串中的所有字符设置为指定值

模板参数
CharT字符类型
参数
str字符串指针
value要设置的字符值
返回
原字符串指针

在文件 memory.hpp864 行定义.

◆ string_set() [2/2]

template<typename CharT>
CharT * string_set ( CharT * str,
const CharT value,
const size_t count )
constexprnoexcept

将字符串中的前n个字符设置为指定值

模板参数
CharT字符类型
参数
str字符串指针
value要设置的字符值
count要设置的字符数
返回
原字符串指针

在文件 memory.hpp884 行定义.

引用了 count().

◆ string_span_in()

template<typename CharT>
MSTL_PURE_FUNCTION constexpr size_t string_span_in ( const CharT * str,
const CharT * accept )
constexprnoexcept

计算字符串开头包含在指定字符集中的字符数

模板参数
CharT字符类型
参数
str字符串指针
accept字符集指针
返回
开头连续出现在字符集中的字符数

在文件 memory.hpp799 行定义.

◆ string_span_not_in()

template<typename CharT>
MSTL_PURE_FUNCTION constexpr size_t string_span_not_in ( const CharT * str,
const CharT * reject )
constexprnoexcept

计算字符串开头不包含在指定字符集中的字符数

模板参数
CharT字符类型
参数
str字符串指针
reject排除字符集指针
返回
开头连续不出现在排除字符集中的字符数

在文件 memory.hpp833 行定义.