-4

我有一个像“Hello world 1 2 3”这样的字符串,我想得到一个像“Hello World”这样的字符串。你知道它有什么功能吗?

4

3 回答 3

3

作为第一个近似值,假设您希望删除所有数字并将结果放入一个新字符串中,我将从以下内容开始:

std::remove_copy_if(your_string.begin(), your_string.end(), 
                    std::back_inserter(new_string),
                    [](unsigned char ch) { return isdigit(ch); });
于 2013-10-28T18:04:07.767 回答
1

从字符串中删除所有数字

string x
x.erase(
  std::remove_if(x.begin(), x.end(), &isdigit), 
  x.end());
于 2013-10-28T18:04:34.183 回答
0

这通常使用std::ctype<char>facet 对包括空白字符的字母数字进行分类:

#include <locale>
#include <functional>

template <class charT = char>
bool digit_removal(charT c, std::locale loc)
{
    return std::use_facet<std::ctype<charT>>(loc).is(
        std::ctype_base::digit, c);
}

int main()
{
    std::string var = "Hello 123";
    var.erase(
        std::remove_if(var.begin(), var.end(),
          std::bind(&digit_removal<char>, std::placeholders::_1, std::locale())),
    var.end());


    std::cout << var; // "Hello "
}
于 2013-10-28T18:18:34.307 回答