删除数字并在C ++中保持字符串下划线

时间:2018-05-18 19:31:58

标签: c++ string c++-standard-library

我有这段代码,但它输出 Hello World没有下划线。如果我想输出Hello_World,我该怎么做?

string s = "Hello_World 1 2";
s.erase(remove_if(s.begin(), s.end(), [](char c) { return !isalpha(c); } ), s.end());

1 个答案:

答案 0 :(得分:3)

您可以通过向std::remove_if函数添加另一个条件来实现特定输出。

std::string s = "Hello_World 1 2";
s.erase( std::remove_if(s.begin(), s.end(),  [](char c) 
                       { 
                           return !isalpha(c) && c != '_';
                       }), 
                       s.end());
std::cout << s;