目录
- 介绍
- 声明&初始化
- 基本操作
3.1 查找操作
3.2 插入操作
3.3 删除操作 - 其余函数
4.1 string长度
4.2 复制string对象
4.3 string对象拼接
4.4 string对象比较
4.5 获取子串
AcWing 把 锚点禁用了
1. 介绍
- 字符串是存储在内存中连续字节中的一系列字符。
- c++处理字符串的方式有两种
- 用c语言的方法处理
- 基于string类库的字符串处理方式。
string类定义隐藏了字符串的数据性质,让我们可以像处理普通变量那样处理字符串。
string对象和字符数组至今啊的主要区别是:可以将string对象声明为简单变量,而不是数组
2. 声明&初始化
2.1 string类中常见的构造函数
// 1. 将string对象初始化为s指向的字符串
// string (const char *s);
string str("Hello");
// 2. 创建一个默认的string对象,长度为0(默认构造函数)
// string()
string str; //创建一个空的string对象
// 3. 创建一个包含n个元素的string对象,其中每个元素都被初始化为字符c
// string(size_type n, char c)
// string str(10, 'a');
string类的设计允许程序自动处理string的大小
2.2 用c语言风格初始化string对象
string str = "hello cpp world!";
3.1 查找操作
使用find函数查找字符串
// 1.从字符串得pos位置开始(若不指定pos的值,则默认从索引0处开始),查找子字符串str.
// 如果找到,则返回该字符串首次出现的位置时其首字符的索引;否则,则返回string::npos
size_type find (const string& str, size_type pos = 0) const;
// 2. 从字符串的pos位置开始(若不指定pos的值,则默认从索引0处开始),查找s的前n个字符组成的子字符串。
// 如果找到,则返回该子字符串首次出现时其首字符的索引;否则,则返回string::npos
size_type find (const char *s, size_type pos, size_type n);
3.2 插入操作
string& insert(size_t pos, const string&str); // 在pos位置插入字符串str
iterator insert (const_iterator p, char c); // 在p处插入字符c,并返回插入后迭代器的位置
3.3 删除操作
string& erase (size_t pos = 0, size_t = npos); // 删除从pos处开始的n个字符
iterator erase (const_iterator p); // 删除p处的一个字符,并返回删除后的迭代器的位置
iterator erase (const_iterator first, const_iterator last); // 删除从first到last之间的字符,并返回迭代器的位置
其余函数
- string的长度
string.size()
或者string.length()
- 复制string对象
str2 = str1
- string对象的拼接和附加
str3 = str1 + str2
- 获取子串
string.substr()
// pos是子字符串的起始位置(索引,第一个字符的索引为0), len是子串的长度。
// 这个函数的功能是:复制一个string对象从pos处开始的len个字符到string对象substr种去,并返回substr
string substr (size_t pos = 0, size_t len = npos) const;
- getline()函数获取string输出
string str;
getline(cin, str); // 从输入流种读取一行数据到str
- 使用empty()函数判断字符串是否为空
string str;
if (str.empty()){
cout << "字符串为空" << endl;
}