【发布时间】:2012-05-27 22:39:57
【问题描述】:
假设如下:
string s("!Hello!'");
我的目的是在s变量中获取,只有“Hello”字符串,IOW我要去掉感叹号。
我尝试了以下方法:
std::remove ( s.begin(), s.end(), '!' );
当我 cout 得到的 s 字符串时:
Helloo!
“!”字符已被删除,但字符串的末尾没有移动。
我读到我需要从 std::remove 的返回值中取回一个迭代器,但我是 C++ 新手,没有成功。
我希望像 char::iterator 这样的东西是有效的,但似乎不是......所以
char::iterator new_end;
new_end = std::remove ( s.begin(), s.end(), '!' );
cout << new_end ;
没有成功。
任何帮助/指针将不胜感激!
【问题讨论】: