假设我有一个输入文件和一个输出文件。当我打开它时,输入文件会读取这样的内容:
a: [10, 3, 4] 140619073542552
b: [10, 3, 4] 140619073542552
c: [7, 3, 4] 140619073604136
然后我输入一个字符串,我想从读取的数据中删除字符串并将其写入输出文件。例如,如果我删除'at',我会得到这个:
Happy birthday to everyone!
如何使用str.erase或其他字符串方法执行此操作?
答案 0 :(得分:1)
#include <string>
#include <algorithm>
static bool is_a_t(char c) { return c == 'a' || c == 't'; }
std::string in("Happy birthday to everyone!");
in.erase(std::remove_if(in.begin(), in.end(), is_a_t), in.end());
答案 1 :(得分:1)
#include <algorithm>
#include <iostream>
#include <iterator>
#include <string>
std::string get_processed_copy(const std::string& src, const std::string& remove) {
std::string dst;
std::remove_copy_if(src.begin(), src.end(), std::back_inserter(dst),
[&](char c) {
return remove.find(c) != remove.npos;
});
return dst;
}
int main() {
std::cout << get_processed_copy("Happy birthday to everyone!", "at") << std::endl;
}