【C++】标准库类型string
string类简介
在实际开发中会经常使用字符串,所谓的字符串就是指一连串的字符,它由许多单个字符连接而成。字符串中可以包含任意任意字符,这些字符必须包含在一对英文双引号( " " )之内,例如"abc"。C++中定义了String类来封装字符串,并提供了一系列操作字符串的方法,它们都位于<string>头文件中。
我们先来看一下https://legacy.cplusplus.com/ 网站对string类的文档介绍:string类文档 编辑
总结如下:
1. string是表示字符串的字符串类
2. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。
3. string在底层实际是:basic_string模板类的别名,即:
typedef basic_string<char, char_traits, allocator>string;
4. 不能操作多字节或者变长字符的序列。
5. 在使用string类时,必须包含#include头文件以及using namespace std;
string类常用接口(成员函数)
📌string类对象默认成员函数
🎏string类对象构造函数
如下,C++98标准中对于string类实现了7个重载的构造函数:string类查询文档 编辑
其参数解析如下:
编辑
接下来我们演示使用如下四种常见的string类构造函数:
函数名称 |
功能说明 |
|
string() |
构造空的string类对象,即空字符串 |
|
string(const char* s) |
用C-string来构造string类对象 |
|
string(size_t n,char c) |
string类对象中包含n个字符c |
|
string(const string&s) |
拷贝构造函数 |
如下代码,分别按上述构造函数顺序调用了相应构造函数初始化了4个string类对象:
#include<iostream>
#include<string>
using namespace std;
int main()
{
//构造空的string类对象,即空字符串
string s1;
//用C-string来构造string类对象
string s2("hello world");
//string类对象中包含n个字符c
string s3(5, 'x');
//拷贝构造函数
string s4(s2);
cout << s1 << endl;
cout << s2 << endl;
cout << s3 << endl;
cout << s4 << endl;
return 0;
}
运行程序,构造类对象效果如下:编辑
🎏string类对象析构函数
如下,C++中对于string类实现了1个析构函数:
编辑
该函数没有参数,没有返回值,在类对象生命周期结束后自动调用销毁类对象.
🎏string类对象赋值运算符重载函数
如下,C++98标准中对于string类实现了3个重载的赋值运算符重载函数:
编辑
接下来我们演示使用这三种常见的string类赋值运算符重载函数:
如下代码,分别按上述赋值运算符重载函数顺序调用了相应赋值运算符重载函数赋值了3次string类对象s4:
int main()
{
//构造空的string类对象,即空字符串
string s1;
//用C-string来构造string类对象
string s2("hello world");
//string类对象中包含n个字符c
string s3(5, 'x');
//拷贝构造函数
string s4(s2);
cout << s4 << endl;
s4 = s3;
cout << s4 << endl;
s4 = "ABCDEF";
cout << s4 << endl;
s4 = 'Y';
cout << s4 << endl;
return 0;
}
运行程序,赋值运算符重载效果如下:
编辑
- 点赞
- 收藏
- 关注作者
评论(0)