【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; }
蒹葭苍苍,白露为霜;
所谓伊人,在水一方。
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步