本质:
string是C++风格的字符串,而string本质上是一个类。
string和char*区别:
- char*是一个指针
- string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。
特点:
string类内部封装了很多成员方法。
例如:查找find,拷贝copy,删除delete,替换replace,插入insert。
string管理char*所分配的内存,不用担心复制越界和取值越界等,由类内部进行负责。
string的构造函数:
构造函数原型:
- string(); // 创建一个空的字符串 例如:string str;默认构造,无参构造。
- string(const char* s);// 使用字符串s初始化
- string(const string& str); // 使用一个string对象初始化另一个string对象。拷贝构造。
- string(int n, char c); // 使用n个字符c初始化。
void test01()
{
string s1; // 1、默认构造函数,无参构造。
const char* str = "hello world"; // C语言风格的数组。来触发构造。
string s2(str); // 2、使用字符串s初始化。
cout << "s2 = " << s2 << endl;
string s3(s2); // 3、拷贝构造:
cout << "s3 = " << s3 << endl;
string s4(10, 'a'); // 4、重复字符构造。
cout << "s4 = " << s4 << endl;
}
构造函数是给一个对象进行初始操作。赋值是在初始化之后,重新进行一个赋值。
string赋值操作
两种方式给string赋值:一种是运算符重载=,一种是成员函数assign。
赋值的函数原型:
- string& operator=(const char* s);

本文详细介绍了C++中的string类,包括其本质、与char*的区别、特点、构造函数、赋值操作、拼接方法、查找与替换功能、比较方法以及单个字符存取、插入和删除。string类作为C++中的字符串容器,提供了丰富的成员方法,方便进行字符串操作,避免了C风格字符串的一些潜在问题。此外,还展示了如何通过不同构造函数初始化string对象以及如何使用赋值运算符和assign成员函数进行赋值。
最低0.47元/天 解锁文章
3525

被折叠的 条评论
为什么被折叠?



