比方說,我有一個輸入文件和一個輸出文件。輸入文件讀取這樣的事情,當我打開它:擦除用戶從讀取輸入文件輸入的字符串
Happy birthday to everyone!
然後我進入,我想從所讀取,並將其寫入到輸出文件中的數據字符串中刪除的字符串。例如,如果我刪除「的」,我會得到這樣的:
Hppy birhdy o everyone!
如何我可以使用str.erase或另一個字符串的方法來做到這一點?
比方說,我有一個輸入文件和一個輸出文件。輸入文件讀取這樣的事情,當我打開它:擦除用戶從讀取輸入文件輸入的字符串
Happy birthday to everyone!
然後我進入,我想從所讀取,並將其寫入到輸出文件中的數據字符串中刪除的字符串。例如,如果我刪除「的」,我會得到這樣的:
Hppy birhdy o everyone!
如何我可以使用str.erase或另一個字符串的方法來做到這一點?
#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());
#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;
}
使用字符串::找到 – Allanqunzi
的std :: string ::擦除從兩個位置之間刪除字符。 std :: remove_if可以刪除一個特定的字符值或採用一個匹配多個的lambda。 std :: regex和std :: regex_replace可以匹配任何你想要的並刪除它。如果你想使用std :: remove_if看看http://stackoverflow.com/questions/5891610/how-to-remove-characters-from-a-string –