【剖析STL】String(二)

简介: 2.3.2string类对象的容量操作 本部分会介绍以下几个容器操作:
2.3.2string类对象的容量操作
  • 本部分会介绍以下几个容器操作:
函数名称 功能说明
size(重点) 返回字符串有效字符长度
length 返回字符串有效字符长度
capacity 返回空间总大小
empty (重点) 检测字符串释放为空串,是返回true,否则返回false
clear (重点) 清空有效字符
reserve (重点) 为字符串预留空间**
relational operators (重点) relational operators (重点)
  • operator+

连接字符串,返回一个新构造的string对象,其值由lhs中的字符和rhs中的字符拼接而成。

  • getline (重点)

getline(istream& is, string& str, char delim);


🔥这个形式的函数从输入流is中读取一行文本,并将其存储在str字符串中,直到遇到指定的分隔符delim为止。如果没有指定分隔符,则默认为换行符。读取的分隔符不包括在存储的字符

  • 符串中。
int main()
{
  string line;
  char delim = ':';
  cout << "Enter a line with as delimiter :" << endl;
  getline(cin, line, delim);
  cout << "You entered:" << line << endl;
  return 0;
}

getline(istream& is, string& str);

  • 🔥这个形式的函数从输入流is中读取一行文本,并将其存储在str字符串中,直到遇到换行符为止。读取的换行符不包括在存储的字符串中。
  • operator>> (重点)

从流中提取字符串,从输入流中提取一个字符串,将该序列存储在str中,str被覆盖(之前的str值被替换)。

该函数重载运算符>>,使其行为与istream::operator>>中描述的一样,适用于c-string对象。

提取出的每个字符都会像调用push_back成员一样被添加到字符串中。

请注意,istream提取操作使用空格作为分隔符。因此,这个操作只会从流中提取可以认为是单词的内容。要提取整行文本,请参阅全局函数getline的字符串重载。

  • operator<< (重点)

向流中插入字符串,将符合str的值的字符序列插入到os中。

  • relational operators (重点)

这个后面写模拟实现的时候,会详细讲解

2.4String非常用接口说明

  • insert

在pos(或p)指定的字符之前插入额外的字符:

  • 🔥intsert不会将\0插入进去 的,string不推荐经常使用insert,能少用就少用

int main()
{
  string s1("world");
  s1.insert(0, "hello");
  cout << s1 << endl;
  s1.insert(5, " ");
  cout << s1 << endl;
  return 0;
}
  • erase

从字符串中删除字符,删除字符串的一部分,减少其长度:

  • 第一种:擦除字符串值中从字符位置pos开始并跨越len字符的部分(如果内容太短或len为string::npos,则擦除直到字符串末尾)。注意,默认实参会擦除字符串中的所有字符(类似于成员函数clear)。
  • 第二种:擦除指向p的字符。
  • 第三种:擦除[first,last)范围内的字符序列。
string s2("hello world");
  s2.erase(5, 1);
  cout << s2 << endl;

当删除的字符的个数超过了字符的个数会怎么样?

  • replace

int main()
{
  string s1("world");
  s1.insert(0, "hello");
  cout << s1 << endl;
  s1.insert(5, " ");
  cout << s1 << endl;
  return 0;
}


相关文章
|
3天前
|
算法 安全 程序员
【C++】STL学习之旅——初识STL,认识string类
现在我正式开始学习STL,这让我期待好久了,一想到不用手撕链表,手搓堆栈,心里非常爽
10 0
|
14天前
|
C++ 容器
STL—vector、string
STL—vector、string
|
19天前
|
算法 Linux C语言
【C++进阶(一)】STL大法以及string的使用
【C++进阶(一)】STL大法以及string的使用
|
20天前
|
存储 算法 C语言
c++的学习之路:9、STL简介与string(1)
c++的学习之路:9、STL简介与string(1)
22 0
|
1月前
|
存储 编译器 C++
【C++初阶】STL详解(二)string类的模拟实现
【C++初阶】STL详解(二)string类的模拟实现
53 1
|
1月前
|
存储 算法 编译器
【C++初阶】STL详解(一)string类
【C++初阶】STL详解(一)string类
31 0
|
1月前
|
存储 算法 C语言
【C++初阶】8. STL初阶 + String类
【C++初阶】8. STL初阶 + String类
54 1
|
1月前
|
C++
【C++STL基础入门】string类的基础使用
总之,`string`类是C++中用于操作字符串的重要工具,提供了丰富的方法来进行字符串操作、查找、替换等操作,简化了字符串处理的任务。 买CN2云服务器,免备案服务器,高防服务器,就选蓝易云。百度搜索:蓝易云
9 0
|
2月前
|
编译器 C++ 容器
【C++练级之路】【Lv.6】【STL】string类的模拟实现
【C++练级之路】【Lv.6】【STL】string类的模拟实现
|
3月前
|
存储 编译器 C++
C++:STL - string
C++:STL - string
59 1