c++删除string中指定的字符
Posted huwt
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了c++删除string中指定的字符相关的知识,希望对你有一定的参考价值。
使用string::iterator(字符串迭代器)从开始 str.begin() 迭代到最后 str.end() ,再使用string.erase(const_iterator p)函数来删除迭代器所指向的字符。
#include <iostream> #include <string> using namespace std; int main() { string str; char ch; cin >> str; cin >> ch; string::iterator it; for (it = str.begin(); it < str.end(); it++) { if (*it == ch) { str.erase(it); it--; /* it--很重要,因为使用erase()删除it指向的字符后,后面的字符就移了过来, it指向的位置就被后一个字符填充了,而for语句最后的it++,又使it向后移 了一个位置,所以就忽略掉了填充过来的这个字符。在这加上it--后就和for 语句的it++抵消了,使迭代器能够访问所有的字符。 */ } } cout << str; return 0; }
以上是关于c++删除string中指定的字符的主要内容,如果未能解决你的问题,请参考以下文章
C++ std::string::find_last_of()函数(在字符串中搜索与参数中指定的任何字符匹配的最后一个字符)(从后往前找)(文件路径中找文件名,/\兼容windows和linux)
C++ std::string::find_last_of()函数(在字符串中搜索与参数中指定的任何字符匹配的最后一个字符)(从后往前找)(文件路径中找文件名,/\兼容windows和linux)