创建、初始化string
// string s();
//生成一个空字符串s
string s1(); // s1 = ""
//string s(str)
//将str字符串作为s的初值
string s2("Hello"); // s2 = "Hello"
//string s(num,c);
//生成一个字符串,包含num个c字符
string s3(4, 'K'); // s3 = "KKKK"
//strings(str,stridx,strlen);
//将字符串str内“始于stridx且长度顶多strlen”的部分作为字符串的初值
string s4("12345", 1, 3); //s4 = "234",即 "12345" 的从下标 1 开始,长度为 3 的子串
求string长度
- size 得到字符串的大小
- length 和size函数功能相同
string s("Hello World!");
int slen = s.size(); //slen = 12
int slen2 = s.length(); //slen2 = 12 与size()一样
String操作
- Swap() 交换两个字符串的内容
- append( ) 字符串的连接
- insert () 插入字符
- erase() 删除字符
- clear () 删除全部字符
- replace() 替换字符
- max_size () 返回字符的最大可能个数
- empty () 判断字符串是否为空
// swap() 交换两个字符串的内容
string s1("abcd”), s2("dcba");
s1.swap(s2); // s1 = "dcba",s2 = "abcd"
// append( ) 字符串的连接
string s3("abc"), s4("efg");
s3.append(s4); // s3 = "abcefg"
s3.append(s4, 1, 2); // s3 = "abcefgfg"
s3.append(3, 'K'); // s3 = "abcefgfgKKK"
s3.append("ABCDE", 2, 3); // s3 = "abcefgfgKKKCDE",添加 "ABCDE" 的子串(2, 3)
// insert () 插入字符
string s1("abcd”), s2("666");
s1.insert(2, "123"); //在下标 2 处插入字符串"123",s1 = "ab123cd"
s1.insert(3, s2); //在下标 3 处插入 s2 , s1 = "abc666cd"
s1.insert(3, 5, 'X'); //在下标 3 处插入 5 个 'X',s1 = "abcXXXXXd"
//erase() 删除字符
string s1("abcd eeee");
s1.erase(1, 3); //删除子串(1, 3),此后 s1 = "a eeee"
s1.erase(3); //删除下标3及其后面的所有字符,此后 s1 = "a e"
// replace() 替换字符
s1.replace(int a, int b, char *s, int n);//删除从a开始的b个字符,然后在a处插入字符串s的前n个字符
s1.replace(int a, int b, string &s);//删除从a开始的b个字符,然后在a处插入串s
s1.replace(int a, int b, string &s, int pos, int n);//删除从a开始的b个字符,然后在a处插入串s中从pos开始的n个字符
s1.replace(int a, int b, int n, char c);//删除从a开始的b个字符,然后在a处插入n个字符c