c strchr函数_linux c stdout_strchr函数php(14)

电脑杂谈  发布时间:2017-02-23 21:04:05  来源:网络整理

c++概念字符串操作

一、char_traits 字符特征类

1)意义:包装特定串元素的通用行为界面,以便容器实现时依据特征信息而执行特定行为

2)定义了通用类型名

typedef _Elem char_type;

typedef int int_type;

typedef streampos pos_type;

typedef streamoff off_type;

typedef mbstate_t state_type;

其中 int_type 表示字符元素转换到特定编码时的整型表示,pos_type, off_type 分别作为字符串索引和字符串元素偏移的类型,类似容器迭中的指针,迭代类型和指针,迭代器的偏移类型。最后的 state_type 用于存储流状态,如出错,格式控制等等。

3)定义了字符 / 字符串操作的包装界面,以便通用算法的调用

assign(a, b) 定义将 b 字符赋值给 a 字符的过程,实现 a.operator = 的行为

eq(a, b) 定义 a 字符和 b 字符的相等关系,实现 a.operator == 的行为

lt(a, b) 定义 a 小于 b 的关系,实现 a.operator < 的行为

compare(a_ptr, b_ptr, cnt) 定义两组字符串的比较,返回 int 类型,实现类似 memcmp 的行为

length(ptr) 定义取字符串长度,实现类似 strlen 的行为

copy(a_ptr, b_ptr, cnt) 定义两组字符串的复制,实现类似 memcpy 的行为

move(a_ptr, b_ptr, cnt) 定义两组字符串的不重叠复制,实现类似 memmove 的行为

assign(ptr, cnt, ch) 定义了填充字符串的过程,实现类似 memset 的行为

to_int_type(ch) 定义了 char_type 到 int_type 整型的转换过程

to_char_type(n) 定义了 int_type 到 char_type 字符型的转换过程

eq_int_type(a, b) 定义两个和当前 char_type 类型对应的 int_type 的相等关系

eof() 定义字符串结尾符,使用整型表示

not_eof(n) 定义非字符串结尾符,若输入结尾符,则返回 1,其他输入返回原值,即总是不返回 eof()

4)int_type 类型应是当前字符类型的整型编码

二、std::string 并不是序列容器,没有 front() 和 back() 界面用于取出前端和尾端的元素,使用 std::string::operator [] 并传递 streampos 类型取得特定元素,如 std::string::size() - 1 作为索引取得最后一个字符

三、basic_string 支持的初始化

1)默认初始化

2)分配器

3)复制构造

4)局部复制 [_Roff, _Roff + _Count)

5)局部复制 + 分配器

6)C 字符串 [_Ptr, <null>)

7)C 字符串 + _Count [_Ptr, _Ptr + _Count)

8)C 字符串 + 分配器

9)C 字符串 + _Count + 分配器 [_Ptr, _Ptr + _Count)

10)_Count * _Ch

11)_Count * _Ch + 分配器

12)迭代器 [_ItF, _ItL)

13)迭代器 + 分配器

字符到串不能初始化,但支持 operator = 赋值和 operator += 累加赋值运算。


本文来自电脑杂谈,转载请注明本文网址:
https://www.pc-fly.com/a/jisuanjixue/article-34103-14.html

相关阅读
    发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

    • 杨红杰
      杨红杰

      是美国海军现役主力舰艇之一

    • 张梦璐
      张梦璐

      还美军保护地

    热点图片
    拼命载入中...