擦除用户从读取输入文件输入的字符串

时间:2015-08-28 04:15:47

标签: c++ string

假设我有一个输入文件和一个输出文件。当我打开它时,输入文件会读取这样的内容:

a: [10, 3, 4] 140619073542552 b: [10, 3, 4] 140619073542552 c: [7, 3, 4] 140619073604136

然后我输入一个字符串,我想从读取的数据中删除字符串并将其写入输出文件。例如,如果我删除'at',我会得到这个:

Happy birthday to everyone!

如何使用str.erase或其他字符串方法执行此操作?

2 个答案:

答案 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;
}