写此文以便需要时查阅
字符串的初始化
这里介绍几种特殊的初始化方式,可能会比较少见。
string1(string2)
将字符串string2直接拷贝给string1
string s1 = "happy~day";
string s2(s1);
string(int length, char c)
将length个字符c组成的串赋值给string
string s3(10, 'b');
string(string s, int start, int length)
取s字符串从start位置开始的length个字符赋值给s6。若不填写length,取后面所有字符。
string s4 = "hello&world";
string s5(s4, 4); //o&world
string s6(s4, 5, 3);//&wo
字符串处理
string.substr(int start, int length)
返回string从start位置开始的length长度的子串
(一)插入操作
string.insert(int index, string/char s)
在string的index位置插入字符或字符串
string s4 = "hello&world";
s4.insert(3, '#');
s4.insert(5, "*play*");
string.insert(int index, int length, char c)
在string的index位置插入length个字符c,只能是字符!
string s4 = "hello&world";
s4.insert(4, 3, 'O');
string.insert(int index, string s, int start, int length)
在string的index位置插入字符串s从start位置开始的长度为length的子串
string s4 = "hello&world";
s4.insert(5, "**C++**", 2, 3);
(二)删除操作
string.erase(int start, int length)
删除string字符串start位置开始的length个字符
string.erase(iterator)
删除迭代器所指的字符。迭代器是指使用string.begin()和string.end()
string.erase(iterator1, iterator2)
删除迭代器范围的字符,左闭右开
字符串的搜索操作
string.find(string/char s, int start, int len)
String str1 = "There is a string";
//查找字符'i'第一次出现的位置
cout << str1.find('i') << endl;
//从位置8开始查找字符's'
cout << str1.find('s', 8) << endl;
//从位置1开始查找字符串"ere"的前两个字符
cout << str1.find("ere", 1, 2) << endl;
string.rfind(string/char s)
查找字符串s最后一次出现的位置
字符串的比较
string.compare(string s)
String str2 = "Happy Birthday"
String str3 = "Happy-Birthday"
cout << str2.compare(str3) << enddl;
//str2 > str3 返回1
//str2 = str3 返回0
//str2 < str3 返回-1
字符串的转换
stoi(string s, int start, int b)
把字符串s从start位置开始转换成b进制的int类型
|