c++ 字符串去除前零
时间: 2024-09-10 10:29:57 浏览: 34
在C++中,如果你想要去除字符串中的前导零,可以使用`std::string`类的相关功能来实现。一个简单的方法是遍历字符串,找到第一个非零字符的位置,然后从这个位置开始重新构造一个新的字符串。
以下是一个简单的示例代码,展示了如何去除字符串中的前导零:
```cpp
#include <iostream>
#include <string>
#include <algorithm> // for std::find_if
std::string removeLeadingZeros(std::string input) {
auto nonZeroPos = std::find_if(input.begin(), input.end(), [](char c) {
return c != '0';
});
// 如果没有找到非零字符,则返回空字符串
if (nonZeroPos == input.end()) {
return "";
}
// 移除前导零
input.erase(input.begin(), nonZeroPos);
return input;
}
int main() {
std::string str = "00012345";
std::string result = removeLeadingZeros(str);
std::cout << "原始字符串: " << str << std::endl;
std::cout << "去除前导零后的字符串: " << result << std::endl;
return 0;
}
```
这段代码首先使用`std::find_if`来查找第一个不是'0'的字符的位置。一旦找到,就使用`std::string`的`erase`方法来移除所有前导的'0'。如果输入字符串全为'0',则返回一个空字符串。