string构造及赋值
string str;//空字符串
string str0 = "abcef";
//同 string str0("abc");
string str1(str0);//用一个string对象初始化另一个string对象
//同 string str1=str0;
char* s = "abcef";
string str2(s);//用一个字符串初始化string对象
//同 string str2 = s;
//string& assign(char* s,int n);
str2.assign(s, 4);//把字符串s中的前4位赋给str2,"abce"
//assgin(),C++string类的成员函数,用于拷贝、赋值操作
char c = 'a';
//string(int n,char c);
string str3(5, c); //初始化为5个字符c ,"aaaaa";
//同str3.assign(5,c);
//string& assign(string& s,int star,int n)
string str4;//初始化
str4.assign(str2, 1, 3);//将str2从1(start)开始3个字符赋给str4,"bce"
//注意:首位的索引是0
string拼接
string str;//初始化
string str1 = "abc";
char* s = "defg";
char c = 'h';
//方法一:+=操作符重载
//str += str1;//结果:str="abc";
//str += s;//结果:str="abcdefg";
//str += c;//结果:str="abcdefgh";
//方法二:append()方法
//append(),用于在被选元素的结尾(仍然在内部)插入指定内容
str.append(str1);//同+=重载,str="abc";
//string& append(char* s,int n);
str.append(s, 2);//将字符串的前2个字符连接到str结尾,str="abcde"
//string& append(char* s,int start,int n);
str.append(s, 2, 2);//将字符串从2(start)开始的2个字符接到str结尾,str="abcdefg"
string查找、替换
string str = "abcdefggfedcba";//初始化
//string& find(string& str,int start=0)
int num = str.find("cde");//从 0(start) 开始查找 "cde" 第一次出现的位置,num=2;
//start默认=0;
char* s = "edc";
//string& find(char* s,int start=0,int n)
num = str.find(s, 7, 2);//从 7(start) 开始查找 s的前2(n)个字符("ed") 第一次出现的位置,num=9;
//string& rfind(string& str,int start=0)
num = str.rfind("edc",7);//从 7(start) 开始查找 "edc" 最后一次出现的位置,num=9;
//string& replace(int start,int n,char* s)
str.replace(2, 5, "12345");//将从 2(start) 开始的 5(n) 个字符替换为字符串 "12345"(s)
//结果:str="ab12345gfedcba";
string插入、删除
string str="ab";//初始化
//string& insert(int start,char* s) 或 string& insert(int start,string& str)
str.insert(2,"cd");//在 2(start) 位置插入字符串; str="abcd";
//string& insert(int start,int n,char c)
str.insert(4, 3, 'e');//在 4(start) 位置插入 3(n) 个 'e'(字符c); str="abcdeee";
//string& erase(int start,int n)
str.erase(5, 2);//删除从 5(start) 开始的 2(n) 个字符; str="abcde";
string与char*的转换
//string 转 char*
string str = "abc";
const char* s = str.c_str();//c_str()函数将string转化为char*
//char* 转 string
char* s1 = "abc";
string str1 = s1;
string子串
string str = "abcdefg";//初始化
//string substr(int start,int n)
string str1 = str.substr(2, 3);//substr()函数,返回从 2(start) 开始的 3(n) 个字符组成的字符串
//str1="cde";