一、构造函数
string ss;
char chs[100];
string s1(chs, n);
//s是chss指向的数组中前n个字符的拷贝,该数组至少含有n个字符,chs是const char*
string s2(ss, pos2);
//s是ss从下标pos2开始的字符的拷贝,应使pos2 <= s.size()
string s3(ss, pos2, len2);
//s是ss从下标pos2开始len2个字符的拷贝,最多只能拷贝ss.size() - pos2个字符
二、提取子串操作
string s = "123456789";
string subs1 = s.substr(3); //表示从下标为3的位置取后面所有字符
string subs2 = s.substr(3,6); //表示从下标为3的位置取后面6个字符
三、修改操作
1、提供除了迭代器版本外的下标版本的insert和erase
s.insert(s.size(), 5, '*'); //在s.size()即string尾部增加5个*
s.erase(s.size() - 5, 5); //删除末尾的5个元素
2、提供接受c风格字符串的insert和assign
const char* cp = "Hello world!";
string s = "";
s.assign(cp, 0, 4); //字符指针、起始位置、数量
s.insert(s.size(), cp + 5); //下标位置、字符指针起始位置
s.insert(s.size(), cp + 11, 1);//下标位置、字符指针、数量
cout << s; //"Hell world!!"
s.assign(cp + 6, 5); //接受字符指针和数量
cout << s; //"world"
3、接受另一个string对象
string s1 = "Hello, world";
string s2 = "good";
s2.assign(s1); //字符串
s1.insert(7, s2+" "); //位置、字符串
s1.insert(7, s2, 0, 7); //位置、目标、起始、数量
4、append和replace函数
replace是调用erase和insert的简写形式
string s = "wqe";
s.append("666");
s.erase(1, 2);
s.insert(1, "52");
s.replace(1, 2, "52"); //与上两句话等价,在1位置开始后的两个字符替换为“52”
四、搜索操作
返回值:找到返回指定字符出现的下标,未找到返回NULL
string s = "abc";
s.find(args); //查找s中args第一次出现的位置
s.rfind(args); //查找s中args最后一次出现的位置
s.find_first_of(args); //在s中查找args中任何一个字符第一次出现的位置
s.find_last_of(args); //在s中查找args中任何一个字符最后一次出现的位置
s.find_first_not_of(args); //在s中查找第一个不存在args 中的字符
s.find_last_not_of(args); //在s中查找最后一个不在args中的字符
其中args是以下形式之一:
c,pos 从s中位置pos开始查找字符c,pos默认为0
s2,pos 从s中位置pos开始查找字符串s2,pos默认为0
cp,pos 从s中位置pos开始查找指针cp指向的空字符结尾的C风格字符串,pos默认为0
//默认值为0,意味着可以省略
cp,pos,n 从s中位置pos开始查找指针cp指向的数组的前n个字符。pos和n无默认值
五、比较操作
compare函数实现比较操作
返回值:根据等于大于小于参数指定的字符串返回0、正数、负数
s2 //比较s和s2
pos1, n1, s2 //将s中从pos1开始的n1个字符与s2进行比较
pos1, , n1, s2, pos2, n2 //将s中从pos1开始的n1个字符与s2中从pos2开始的n2个字符进行比较
cp //比较s与cp指向的以空字符结尾的字符数组
pos1, n1, cp //将s中从pos1开始的n1个字符和cp指向的以空字符结尾的字符数组进行比较
pos1, n1, cp, n2 //将s中从pos开始的n1个字符与指针cp指向的地址开始的n2个字符进行比较
六、与数值的转换
1、数值转string
int val;
to_string(val)
2、string转数值
b表示转换所用基数(进制数),默认为10
p为size_t指针,用于表示s中第一个非数值字符的下标,默认值为0,即不保存下标
string s;
int p, b;
stoi(s,p,b)
stol(s,p,b)
stoul(s,p,b)
stoll(s,p,b)
stoull(s,p,b)
stof(s,p)
stod(s,p)
stold(s,p)