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

动态字符序列容器 更多...

struct  basic_string_iterator< IsConst, String >
 字符串迭代器 更多...
class  basic_string< CharT, Traits, Alloc >
 基础字符串模板 更多...

类型定义

using string = basic_string<char>
 字符字符串
using wstring = basic_string<wchar_t>
 宽字符字符串
using u8string = basic_string<char8_t>
 UTF-8字符串
using u16string = basic_string<char16_t>
 UTF-16字符串
using u32string = basic_string<char32_t>
 UTF-32字符串

函数

NEFORCE_CONSTEXPR20 string escape (const string_view str)
 转义字符串视图中的特殊字符
NEFORCE_CONSTEXPR20 string escape (const string &str)
 转义字符串中的特殊字符
NEFORCE_CONSTEXPR20 string escape (const char *str)
 转义C风格字符串中的特殊字符
template<typename CharT>
NEFORCE_CONSTEXPR20 bool getline (const basic_string_view< CharT > data, size_t &pos, basic_string< CharT > &str, CharT delim=static_cast< CharT >('\n'))
 从字符串视图中按分隔符读取一行(字符版本)
template<typename CharT>
NEFORCE_CONSTEXPR20 bool getline (const basic_string< CharT > &data, size_t &pos, basic_string< CharT > &str, CharT delim=static_cast< CharT >('\n'))
 从字符串中按分隔符读取一行(字符串版本)
template<typename CharT, typename Pred>
NEFORCE_CONSTEXPR20 bool getline (const basic_string_view< CharT > data, size_t &pos, basic_string< CharT > &str, Pred split=[](const CharT c) { return c==static_cast< CharT >('\n');})
 从字符串视图中按谓词判断的分隔符读取一行
template<typename CharT, typename Pred>
NEFORCE_CONSTEXPR20 bool getline (const basic_string< CharT > &data, size_t &pos, basic_string< CharT > &str, Pred split=[](const CharT c) { return c==static_cast< CharT >('\n');})
 从字符串中按谓词判断的分隔符读取一行
NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 string address_string (const void *p)
 将指针转换为十六进制地址字符串
vector< string_view > NEFORCE_API split (string_view str, string_view delimiters, bool skip_empty=true)
 分割字符串视图
vector< string > NEFORCE_API split (const string &str, const string &delimiters, bool skip_empty=true)
 分割字符串
string NEFORCE_API join (const vector< string > &vec, const string &delimiter="")
 连接字符串
string NEFORCE_API join_fast (const vector< string > &vec, const string &delimiter="")
 快速连接字符串
string NEFORCE_API join_accumulate (const vector< string > &vec, const string &delimiter="")
 使用累加方式连接字符串
vector< string > NEFORCE_API unique (const vector< string > &vec)
 字符串去重

详细描述

动态字符序列容器

函数说明

◆ address_string()

NEFORCE_NODISCARD NEFORCE_CONSTEXPR20 string address_string ( const void * p)

将指针转换为十六进制地址字符串

参数
p要转换的指针
返回
格式化的地址字符串

将指针转换为"0x"开头的十六进制字符串表示。 地址长度根据系统位数自动调整。 如果指针为空,返回"nullptr"。

在文件 string.hpp312 行定义.

引用了 basic_string< CharT, Traits, Alloc >::reserve().

被这些函数引用 to_string().

◆ escape() [1/3]

NEFORCE_CONSTEXPR20 string escape ( const char * str)

转义C风格字符串中的特殊字符

参数
strC风格字符串
返回
转义后的字符串

在文件 string.hpp187 行定义.

引用了 escape().

◆ escape() [2/3]

NEFORCE_CONSTEXPR20 string escape ( const string & str)

转义字符串中的特殊字符

参数
str要转义的字符串
返回
转义后的字符串

在文件 string.hpp180 行定义.

引用了 escape() , 以及 basic_string< CharT, Traits, Alloc >::view().

◆ escape() [3/3]

NEFORCE_CONSTEXPR20 string escape ( const string_view str)

转义字符串视图中的特殊字符

参数
str要转义的字符串视图
返回
转义后的字符串

将字符串中的特殊字符转换为转义序列。 对于不可打印的控制字符(<0x20),转换为Unicode转义。

在文件 string.hpp116 行定义.

引用了 basic_string_view< CharT, Traits >::length() , 以及 basic_string< CharT, Traits, Alloc >::reserve().

被这些函数引用 escape() , 以及 escape().

◆ getline() [1/4]

template<typename CharT>
NEFORCE_CONSTEXPR20 bool getline ( const basic_string< CharT > & data,
size_t & pos,
basic_string< CharT > & str,
CharT delim = static_cast<CharT>('\n') )

从字符串中按分隔符读取一行(字符串版本)

模板参数
CharT字符类型
参数
data源字符串
pos当前读取位置
str输出参数,存储读取的行
delim分隔符,默认为换行符
返回
是否成功读取到数据

在文件 string.hpp229 行定义.

引用了 basic_string< CharT, Traits, Alloc >::clear(), data() , 以及 basic_string< CharT, Traits, Alloc >::push_back().

◆ getline() [2/4]

template<typename CharT, typename Pred>
NEFORCE_CONSTEXPR20 bool getline ( const basic_string< CharT > & data,
size_t & pos,
basic_string< CharT > & str,
Pred split = [](const CharT c) { return c == static_cast<CharT>('\n'); } )

从字符串中按谓词判断的分隔符读取一行

模板参数
CharT字符类型
Pred谓词类型
参数
data源字符串
pos当前读取位置
str输出参数,存储读取的行
split谓词函数,返回true表示该字符是分隔符
返回
是否成功读取到数据

在文件 string.hpp286 行定义.

引用了 data().

◆ getline() [3/4]

template<typename CharT>
NEFORCE_CONSTEXPR20 bool getline ( const basic_string_view< CharT > data,
size_t & pos,
basic_string< CharT > & str,
CharT delim = static_cast<CharT>('\n') )

从字符串视图中按分隔符读取一行(字符版本)

模板参数
CharT字符类型
参数
data源字符串视图
pos当前读取位置
str输出参数,存储读取的行
delim分隔符,默认为换行符
返回
是否成功读取到数据

从data的pos位置开始读取字符,直到遇到分隔符或到达末尾。 将读取的字符(不包括分隔符)存入str,并更新pos位置。 返回true表示至少读取了一个字符(包括分隔符的情况)。

在文件 string.hpp203 行定义.

引用了 basic_string< CharT, Traits, Alloc >::clear(), data() , 以及 basic_string< CharT, Traits, Alloc >::push_back().

◆ getline() [4/4]

template<typename CharT, typename Pred>
NEFORCE_CONSTEXPR20 bool getline ( const basic_string_view< CharT > data,
size_t & pos,
basic_string< CharT > & str,
Pred split = [](const CharT c) { return c == static_cast<CharT>('\n'); } )

从字符串视图中按谓词判断的分隔符读取一行

模板参数
CharT字符类型
Pred谓词类型
参数
data源字符串视图
pos当前读取位置
str输出参数,存储读取的行
split谓词函数,返回true表示该字符是分隔符
返回
是否成功读取到数据

使用自定义谓词判断分隔符,可以处理复杂的行分割逻辑。

在文件 string.hpp258 行定义.

引用了 data().

◆ join()

string NEFORCE_API join ( const vector< string > & vec,
const string & delimiter = "" )

连接字符串

参数
vec字符串向量
delimiter连接符
返回
连接后的字符串

将字符串向量中的所有字符串用指定的连接符连接起来。 使用普通的循环连接方式。

◆ join_accumulate()

string NEFORCE_API join_accumulate ( const vector< string > & vec,
const string & delimiter = "" )

使用累加方式连接字符串

参数
vec字符串向量
delimiter连接符
返回
连接后的字符串

使用accumulate算法进行字符串连接,适合函数式编程风格。

◆ join_fast()

string NEFORCE_API join_fast ( const vector< string > & vec,
const string & delimiter = "" )

快速连接字符串

参数
vec字符串向量
delimiter连接符
返回
连接后的字符串

预先计算总长度并预留空间,提高连接效率。 适合处理大量字符串的连接操作。

◆ split() [1/2]

vector< string > NEFORCE_API split ( const string & str,
const string & delimiters,
bool skip_empty = true )

分割字符串

参数
str要分割的字符串
delimiters分隔符集合
skip_empty是否跳过空字符串
返回
分割后的字符串向量

使用指定的分隔符集合分割字符串,返回子串的字符串向量。 分隔符可以是多个字符,每个字符都作为独立的分隔符。

◆ split() [2/2]

vector< string_view > NEFORCE_API split ( string_view str,
string_view delimiters,
bool skip_empty = true )

分割字符串视图

参数
str要分割的字符串视图
delimiters分隔符集合
skip_empty是否跳过空字符串
返回
分割后的字符串视图向量

使用指定的分隔符集合分割字符串,返回子串的视图向量。 分隔符可以是多个字符,每个字符都作为独立的分隔符。

◆ unique()

vector< string > NEFORCE_API unique ( const vector< string > & vec)

字符串去重

参数
vec字符串向量
返回
去重后的字符串向量

移除向量中重复的字符串,保留首次出现的顺序。