C语言字符串操作总结大全(超详细)

2020-01-06 20:19:30王振洲


三、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 += 累加赋值运算。 

四、字符串的区间有效性 
对串的索引访问在超过字符串的有效区间时,因为串的在实现上对内置的字符缓冲区执行下标访问,所以不会导致异常,但是将得到不可预知的结果,通常是不可用的。
将其他字符串作为右值输入时,对该串取出计数大于串大小时按串大小计算。 
std::basic_string::size_type 的实际类型为 size_t,在 Visual C++ 7.1 中实现为 unsigned,std::basic_string::npos 被静态设定为 

(basic_string<_Elem, _Traits, _Alloc>::size_type)(-1); 

在查找子字符串等操作时,函数返回 npos 的值表示非法索引。 


五、比较字符串 
允许的比较对象 
1)compare(s2) 其他同类型字符串 
2)compare(p) C 风格字符串 
3)compare(off, cnt, s2) [off, off + cnt) 同 s2 执行比较 
4)compare(off, cnt, s2, off2, cnt2) [off, off + cnt) 同 s2 [off2, cnt2) 执行比较 
5)compare(off, cnt, p) [off, off + cnt) 同 [p , <null>) 执行比较 
6)compare(off, cnt, p, cnt2) [off, off + cnt) 同 [p, p + cnt2) 执行比较 

返回 -1, 0, 1 作为小于、等于和大于的比较结果。