c ++使用STL从字符串中删除字符

时间:2012-06-14 03:59:45

标签: c++ stl stdstring

我有一个小脑屁:我想在'\n'中删除换行符std::string的所有实例。我更喜欢使用STL而不是手动,多嵌套for循环;唯一的问题是我忘记了......

for(...) { std::string::remove_if(...); } ;会有效吗?我需要使用std::for_each(...,..., std::string::remove_if(...));吗?或者还需要其他什么东西?

2 个答案:

答案 0 :(得分:19)

第一个想法:删除/删除习语:

str.erase(std::remove(str.begin(), str.end(), '\n'), str.end());

答案 1 :(得分:3)

如果你有Boost.Range它的工作时间更短:

#include <boost\range\algorithm_ext\erase.hpp>

boost::remove_erase(str, '\n');