1、string基本概念
本质:
- string是c++风格的字符串,而string本质上是一个类
string和char*的区别:
- char*是一个指针
- string是一个类,类内部封装了char*,管理这个字符串,是一个char*型的容器。
特点:
- string类内部封装了很多成员方法:如find查找,copy拷贝,replace替换,insert插入
- string管理char*所分配的内容,不用担心赋值越界和取值越界等,有类内部进行负责
2、string构造函数
构造函数原型
- string();创建一个空的字符串
- string(const char* s);使用字符串s初始化
- string(const string& str);使用一个string对象初始化另一个string对象
- string(int n,char c);使用n个字符c初始化
void test01()
{
string s1;//创建一个空的字符串
const char* str = "hello world";
string s2(str);//使用字符串s初始化
cout << s2 << endl;
string s3(s2);//使用一个string对象初始化另一个string对象
cout << s3 << endl;
string s4(19, 'a');//使用n个字符c初始化
cout << s4 << endl;
}
int main()
{
cout << "test01" << endl;
test01();
system("pause");
return 0;
}
test01
hello world
hello world
aaaaaaaaaaaaaaaaaaa
请按任意键继续. . .
3、string赋值操作
目标:给string字符串进行赋值
赋值的函数原型:
- string& operator=(const char* s);char*类型字符串赋值给当前字符串
- string& operator=(const string &s);把字符串s赋值给当前字符串
- string& operator=(char c);字符c赋值给当前字符串
- string& assige(const char *s);把字符串s赋给当前字符串
- string& assige(const char *s,int n);把字符串s的前n个字符赋给当前的字符串
- string& assign(const string &s);把字符串s赋值给当前字符串
- string& assign(int n,char c);用n个字符串c赋给当前字符串
void test01()
{
//string& operator=(const char* s);char*类型字符串赋值给当前字符串
string str1;
str1 = "hello world";
cout << str1 << endl;
//string& operator=(const string &s);把字符串s赋值给当前字符串
string str2;
str2 = str1;
cout << str2 << endl;
//string& operator=(char c);字符c赋值给当前字符串
string str3;
str3 = 'a';
cout << str3 << endl;
//string& assige(cons