删除字符串中多个数字的前导零?[C++]

Remove leading zeros from multiple numbers in string? [C++]

本文关键字:C++ 字符串 数字 删除      更新时间:2023-10-16

假设我有一个包含"00001234 00002345"的字符串,但我想在"1234 2345"处输出它。我该怎么做?

    str.erase(0, str.find_first_not_of('0'));

这会从第一个数字中删除0,但不会删除任何前面的数字。

如果您对正则表达式解决方案感兴趣,可以使用b0+正则表达式(它匹配非单词字符后的0符号,即[a-zA-Z0-9_]):

std::string input("00001234 00002345");
std::regex rgx(R"(b0+)");
std::cout << std::regex_replace(input, rgx, "");
// => 1234 2345

查看IDEONE演示

请注意,原始字符串文字允许我们使用单个反斜杠来转义regex元字符。