C ++字符串库,通过删除其中的整数来获取字符串

时间:2013-10-28 18:00:21

标签: c++ string int

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

3 个答案:

答案 0 :(得分:3)

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

std::remove_copy_if(your_string.begin(), your_string.end(), 
                    std::back_inserter(new_string),
                    [](unsigned char ch) { return isdigit(ch); });

答案 1 :(得分:1)

删除字符串

中的所有数字
string x
x.erase(
  std::remove_if(x.begin(), x.end(), &isdigit), 
  x.end());

答案 2 :(得分:0)

这通常使用std::ctype<char>构面来分类字母数字,包括空白字符:

#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 "
}