1. 在某个位置插入字符
#include<iostream>
#include<string>
using namespace std;
int main() {
string a("hablee");
string::iterator p = a.begin(); // 拿到迭代器head
p++; // 现在指向a
a.insert(p, 'Y'); // 使得p指向Y,即在a前面插入y
cout << a << endl;
return 0;
}
2. 在某个位置插入字符串
2.1 使用迭代器
比如要在hablee
这个字符串前面的h
字符后面(a
的前面)插入yuki
这个字符串。
#include<iostream>
#include<string>
using namespace std;
int main() {
string a("hablee");
string::iterator p = a.begin(); // 拿到迭代器head
p++; // 现在指向a
string b("yuki");
string::iterator b_begin = b.begin(), b_end = b.end();
a.insert(p, b_begin, b_end);
cout << a << endl;
return 0;
}
2.2 使用下标
#include<iostream>
#include<string>
using namespace std;
int main() {
string a("hablee");
string b("yuki");
// 在a下标为1的地方,插入b从0下标开始数的4个字符
a.insert(1, b, 0, 4);
cout << a << endl;
return 0;
}
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s = "some string", s2 = "some other string";
s.insert(0, s2); // 在s的index=0前面插入s2
cout << s << endl;
s.insert(0, s2, 0, s2.size()); // 在s的index=0处,插入s2从index=0开始的s2.size()个字符
cout << s << endl;
return 0;
}
2.3 在后面追加
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s("hablee"), s2 = s;
s.insert(s.size(), " yuki");
cout << "s = " << s << endl;
s2.append(" yuki");
cout << "s2 = " << s2 << endl;
return 0;
}
3. 对字符串重新赋值
#include<iostream>
#include<string>
using namespace std;
int main() {
string a("hablee");
a.assign(6, 'y'); // 6个y
cout << a << endl;
return 0;
}
3. 删除
3.1 删除某个字符
同样也是使用迭代器
#include<iostream>
#include<string>
using namespace std;
int main() {
string a("hablee");
// 现在想删除a
string::iterator p = a.begin();
p++; // 指向a
a.erase(p);
cout << a << endl;
return 0;
}
3.2 删除某一段字符串
同样也是使用迭代器。注意结果是左闭右开区间
#include<iostream>
#include<string>
using namespace std;
int main() {
string a("hablee");
string::iterator p1 = a.begin(), p2 = a.end();
p1++; // 指向a
p2--; // 指向最后一个e
a.erase(p1,p2); // [p1,p2)
cout << a << endl;
return 0;
}
4. 修改字符串中某个字符
#include<iostream>
#include<string>
using namespace std;
int main() {
string a("hablee");
string b("yuki");
// 直接使用下标修改某个字符
a[1] = 'A';
cout << a << endl;
return 0;
}
5. 替换
#include<iostream>
#include<string>
using namespace std;
int main()
{
string s("hablee");
// 从index=1开始,删除后面的2个字符串,替换为指定的字符
s.replace(1, 2, "yuki");
cout << s << endl;
return 0;
}
6. 与数字的相互转换
#include<iostream>
#include<string>
using namespace std;
int main()
{
string ints("42");
int sint = stod(ints);
cout << sint+5 << endl;
string s = to_string(sint);
cout << s+" hello" << endl;
return 0;
}