C++ string 字符串删除指定字符

今天遇到的情况时需要删除时间戳里的‘.’,只留下数字。

想找比较简单的实现方法,找了半天,发现的方案:

用STL的string的 find 和 erase:

首先,通过find找到需要删除的字符/字符串的位置:

string str;

string target;

int pos = str.find(target);

然后通过erase进行删除:

n = target.size();

str = str.erase(pos,n);           //从pos这个位置开始,删除n个字符

 

erase用法参考:http://www.cplusplus.com/reference/string/string/erase/

std::stringC++ 标准库的一个字符串类型,它提供了丰富的字符串操作函数。其包括擦除和改写字符串的函数。 std::string::erase() 函数可以用来擦除字符串的一部分字符。它有两个重载版本: 第一个版本接受一个参数,表示要擦除的起始位置。例如,如果想要从字符串的第三个位置开始擦除两个字符,可以这样写: ``` std::string str = "abcdef"; str.erase(2, 2); // 从第三个位置开始擦除两个字符,结果为 "abef" ``` 第二个版本接受两个参数,分别表示要擦除的起始位置和要擦除的字符数。例如,如果想要从字符串的第三个位置开始擦除到末尾,可以这样写: ``` std::string str = "abcdef"; str.erase(2); // 从第三个位置开始擦除到末尾,结果为 "ab" ``` std::string::replace() 函数可以用来替换字符串的一部分字符。它有三个重载版本: 第一个版本接受两个参数,分别表示要替换的起始位置和要替换的字符数。例如,如果想要将字符串从第三个位置开始的两个字符替换为"xy",可以这样写: ``` std::string str = "abcdef"; str.replace(2, 2, "xy"); // 从第三个位置开始替换两个字符,结果为 "abxyef" ``` 第二个版本接受三个参数,分别表示要替换的起始位置、要替换的字符数和要替换成的字符串。例如,如果想要将字符串从第三个位置开始的两个字符替换为"xy",可以这样写: ``` std::string str = "abcdef"; str.replace(2, 2, "xy", 2); // 从第三个位置开始替换两个字符,结果为 "abxyef" ``` 第三个版本接受两个迭代器参数,分别表示要替换的范围。例如,如果想要将字符串从第三个位置开始到第五个位置之间的字符替换为"xy",可以这样写: ``` std::string str = "abcdef"; str.replace(str.begin() + 2, str.begin() + 5, "xy"); // 替换第三到五个位置之间的字符,结果为 "abxyf" ```
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值