假设我有一个包含“00001234 00002345”的字符串,但我想在“1234 2345”输出它。我该怎么做呢?
str.erase(0, str.find_first_not_of('0'));
这将从第一个数字中删除0,但不删除任何前面的数字。
答案 0 :(得分:2)
如果您对正则表达式解决方案感兴趣,可以使用\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 demo
请注意,原始字符串文字允许我们使用单个反斜杠来转义正则表达式元字符。