gpt4 book ai didi

c++ - 需要有关 Dissection C++ number 2 string function 的帮助

转载 作者:太空宇宙 更新时间:2023-11-04 15:52:43 25 4
gpt4 key购买 nike

我在下面的函数中发现了一个错误。当 temp = 10 时。它会将 temp 转换为字符串 '01'。而不是字符串'10'。我不知道为什么?将Num转换为Str有更好的方法吗?谢谢。

这样完成了 Num2Str(),

static bool Num2Str(string& s, const T& value)
{
int temp = static_cast<int>(value); // When temp = 10.

s.push_back(char('0' + temp % 10));
temp /= 10;

while(temp != 0)
{
s.push_back(char('0' + temp % 10));
temp /= 10;
}
if(s.size() == 0)
{
return false;
}

if(s.find_first_not_of("0123456789") != string::npos)
{
return false;
}

return true;
}

最佳答案

使用 std::ostringstream 将数字转换为字符串。

不要在 C++ 中使用自由静态函数;请改用未命名的命名空间。

#include<sstream>
#include<string>

namespace {
void f()
{
int value = 42;
std::ostringstream ss;
if( ss << value ) {
std::string s = ss.str();
} else {
// failure
}
}
}

关于c++ - 需要有关 Dissection C++ number 2 string function 的帮助,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5347441/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com