C++学习笔记:string类型如何删除指定的字符
Posted 菜鸟学Python编程
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++学习笔记:string类型如何删除指定的字符相关的知识,希望对你有一定的参考价值。
在Python中,可以使用strip方法来清除掉字符串两端指定字符组成的字符串,在处理字符串时,非常的方便。然而,在C++中,string类没有提供类似的方法来清除指定的字符,但是,它提供了非常多的方法,配合使用,也可以达到同样的效果。
删除字符串中的空格
定义一个string类型的变量:
std::string ss = " 123, 456, 789 ";
想要删除这个字符串里的所有空格,可以使用 erase 方法配合 remove_if 方法来进行操作:
int main()
{
std::string ss = " 123, 456, 789 ";
ss.erase(std::remove_if(ss.begin(), ss.end(), isspace), ss.end());
std::cout << ss << std::endl;
}
输出结果显示:
这里使用了 isspace 这个方法用来判断是否为空格,它在remove_if函数中充当回调函数的角色。
如果想要删除字符串的 "," 字符,则需要自己编写回调函数,如下:
ss.erase(std::remove_if(ss.begin(), ss.end(), [](char ch) {return ch == ','; }), ss.end());
这行代码使用了匿名函数,写起来也非常的容易。结果显示如下:
这里要注意的是: erase方法是会改变自身的,因此,如果不想字符串被改变,则需要编写另外的方法来实现。
删除字符串两边指定的字符
这个则更简单,只需使用erase方法即可.
删除左侧的空格:
ss.erase(0, ss.find_first_not_of(' '));
删除右侧的空格:
ss.erase(ss.find_last_not_of(' ') + 1);
注意,这都是在原字符串上进行操作。
在C++上实现一些常用的字符串操作,使用起来也非常的得心应手。
以上是关于C++学习笔记:string类型如何删除指定的字符的主要内容,如果未能解决你的问题,请参考以下文章
C++ Primer 5th 阅读笔记:字符串,vector 和数组
Swift学习笔记(语法篇)-- String与Character类型