C++之String容器
1、特性:
1)和char*对比:char * 是一个指针,String是一个类,String封装了char *,是他的容器
2)String中封装了很多方法:
operate+=(加法拼接)、compare(>=,==,<=,<,>)、length/size(长度)、insert、erase、substr(截取长度)、find/rfind(查找最后一次出现的位置)、replace
3)不用担心内存释放与越界
4)可以通过 c_str()方法 **把string转char *** s_str()方法 把char *转string
2、常用API
1)构造函数
string();//创建一个空的字符串 例如: string str;
string(const string& str);//使用一个string对象初始化另一个string对象
string(const char* s);//使用字符串s初始化
string(int n, char c);//使用n个字符c初始化
//例子:
//默认构造函数
string s1;
//拷贝构造函数
string s2(s1);
string s2 = s1;
//带参数构造函数
char* str = "itcast";
string s3(str);
string s4(10, 'a');
2)基本赋值操作
//第一种 直接用=
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s1="ahahaha";
string s2;
s2=s1;
cout<<s2<<" ";
return 0;
}
// 第二种 用assign()方法
#include<iostream>
using namespace std;
int main()
{
string str1("hello");
string str2;
string str3;
string str4;
string str5;
//====================================
str2.assign(str1); //把字符串str1赋值给当前字符串
str3.assign("World", 4); //把字符串World的前4个字符赋给当前的字符串
str4.assign(str1, 2, 3); //把str1从2开始的3个字符赋值给当前字符串
str5.assign(10, 'c'); //用10个字符c赋值给当前字符串
//====================================
cout<<str1<<endl;
cout<<str2<<endl;
cout<<str3<<endl;
cout<<str4<<endl;
cout<<str5<<endl;
//====================================
system("pause");
return 0;
}
//======================