c++的string若干常用方便的方法

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;
}

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值