C++ 去除字符串前导零的最佳方法 - 两种高效方案详解
{"title":"C++ 如何去掉前导0","content":"在C++中,可以使用以下方法去掉一个字符串中的前导0:\n\n1. 使用std::string的成员函数erase()和find_first_not_of():\n\ncpp\nstd::string removeLeadingZeros(std::string str) {\n size_t pos = str.find_first_not_of('0'); // 找到第一个非0的字符的位置\n if (pos != std::string::npos) {\n str.erase(0, pos); // 移除前导0\n } else {\n str = "0"; // 如果全部为0,则返回单个0\n }\n return str;\n}\n
\n\n2. 使用std::string的迭代器:\n\ncpp\nstd::string removeLeadingZeros(std::string str) {\n std::string::iterator it = str.begin();\n while (it != str.end() && *it == '0') {\n ++it; // 找到第一个非0的字符的迭代器\n }\n if (it != str.end()) {\n str.erase(str.begin(), it); // 移除前导0\n } else {\n str = "0"; // 如果全部为0,则返回单个0\n }\n return str;\n}\n
\n\n注意:以上方法都会返回一个新的字符串,原始字符串不会被修改。"}
原文地址: http://www.cveoy.top/t/topic/p82h 著作权归作者所有。请勿转载和采集!