C++ STL string 中erase 与 substr 用法

本文详细解析了C++中字符串的erase和substr方法的使用技巧,包括如何通过迭代器或位置参数删除特定字符,以及如何截取子串,并展示了异常处理和切片操作的特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可以将erase理解为删除某个指针所指向的值,传入的是个迭代器(指针),删除字符串中此指针所指字符。

	string s = "987654321";
	s.erase(s.begin()+2);
	cout<<s<<endl;

输出:

98654321

或者删除字符串某个位置开始几个字符:

	string s = "987654321";
	s.erase(2,3);
	cout<<s<<endl;

输出:

984321

但注意此时的输入为两个int,第一个表示位置,第二个表示数量,因此再像一个输入参数时输入迭代器或指针是错的。

类似这样是错误的,会报错。

	string s = "987654321";
	s.erase(s.begin()+1,3);
	cout<<s<<endl;

举例:

	string s = "987654321";
	string s1 = s.substr(0,5);  //初始位置和所取的个数
	cout<<"1 : "<<s1<<endl;
	s1 = s.substr(5,100);
	cout<<"2 : "<<s1<<endl;
	s1 = s.substr(5,-1);
	cout<<"3 : "<<s1<<endl;

输出:

1 : 98765
2 : 4321
3 : 4321
请按任意键继续. . .

输出的1 说明substr的第一个参数是初始位置,从0开始,第二个是子串的个数。
输出的2 说明substr对子串的个数做了异常处理了,当输入子串的个数过大时,最多只输出到结尾。
输出的3 说明sybstr能像python一样对字符串进行切片操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值