1 为什么要学习string类
1.1 C语言中的字符串
C 语言中,字符串是以 '\0' 结尾的一些字符的集合,为了操作方便, C 标准库中提供了一些 str 系列的库函数,但是这些库函数与字符串是分离开的,不太符合OOP 的思想,而且底层空间需要用户自己管理,稍不留神可能还会越界访问。
1.2 面试题
在 OJ 中,有关字符串的题目基本以 string 类的形式出现,而且在常规工作中,为了简单、方便、快捷,基本都使用string 类,很少有人去使用 C 库中的字符串操作函数。
2. 标准库中的string
2.2 string类的常用接口说明
(constructor)
函数名称
|
功能说明
|
string()
(重点)
|
构造空的
string
类对象,即空字符串
|
string(const char* s)
(重点)
|
用
C-string
来构造
string
类对象
|
string(size_t n, char c)
|
string
类对象中包含
n
个字符
c
|
string(const string&s)
(重点)
|
拷贝构造函数
|
void Teststring()
{
string s1; // 构造空的string类对象s1
string s2("hello bit"); // 用C格式字符串构造string类对象s2
string s3(s2); // 拷贝构造s3
}
函数名称
|
功能说明
|
size
(重点)
|
返回字符串有效字符长度
|
length
|
返回字符串有效字符长度
|
capacity
|
返回空间总大小
|
empty
(重点)
|
检测字符串释放为空串,是返回
true
,否则返回
false
|
clear
(重点)
|
清空有效字符 |
reserve
(重点)
|
为字符串预留空间
|
resize
(重点)
|
将有效字符的个数该成
n
个,多出的空间用字符
c
填充
|
函数名称
|
功能说明 |
operator[]
(重点)
|
返回pos位置的字符,const string类对象调用 |
begin+ end |
begin
获取一个字符的迭代器
+
end
获取最后一个字符下一个位置的迭
代器
|
rbegin + rend | 与begin和end相反 |
范围
for
|
C++11
支持更简洁的范围
for
的新遍历方式
|
函数名称
|
功能说明
|
push_back
|
在字符串后尾插字符
c
|
append
|
在字符串后追加一个字符串
|
operator+=
(
重点
)
|
在字符串后追加字符串
str
|
c_str
(
重点
)
|
返回
C
格式字符串
|
find
+
npos
(
重点
)
|
从字符串
pos
位置开始往后找字符
c
,返回该字符在字符串中的位置
|
rfind
|
从字符串
pos
位置开始往前找字符
c
,返回该字符在字符串中的位置
|
substr
|
在
str
中从
pos
位置开始,截取
n
个字符,然后将其返回
|
函数
|
功能说明
|
operator+
|
尽量少用,因为传值返回,导致深拷贝效率低
|
operator>>
(重点)
|
输入运算符重载
|
operator<<
(重点)
|
输出运算符重载
|
getline
(重点)
|
获取一行字符串
|
relational operators
(重点)
|
大小比较
|
文章来源地址https://www.toymoban.com/news/detail-476395.html
文章来源:https://www.toymoban.com/news/detail-476395.html
到了这里,关于C++学习 Day15(string类)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!