如何将整数转换为字符串[重复]

Posted

技术标签:

【中文标题】如何将整数转换为字符串[重复]【英文标题】:How to convert an integer to a string [duplicate] 【发布时间】:2013-09-30 03:16:05 【问题描述】:

我想将整数转换为字符串。我试过这种方法,但没有用

void foo()

    int y = 1;
    string x = static_cast<string>(y);


【问题讨论】:

【参考方案1】:

不,因为intstd::string 在任何类层次结构中都不相关,所以这不起作用。因此static_cast 将失败。

一个简单的方法(虽然不一定是最快的方法)是写

std::stringsteam ss;
ss << y;
std::string x = ss.str();

但是,如果你有一个 C++11 编译器,Joachim Pileborg 的解决方案要好得多

【讨论】:

【参考方案2】:

std::to_string 函数应该这样做:

string x = std::to_string(y);

相反,它是std::stoi

int z = std::stoi(y, nullptr, 10);

【讨论】:

哦,真可爱+1;那是 C++11 的东西吗? 注意:这仅由支持 C++11 的编译器支持(您现在可能应该拥有)。 @Bathsheba 是的,它是 C++11 中的新功能。对于较旧的编译器,您的版本是使用的解决方案(很可能是to_string 的工作方式)。 在 MS Visual Studio 2010 C++ 上,我收到此错误:错误 C2668:'std::to_string':对重载函数的模糊调用。如果我将 x 转换为 (long double),一切正常。实际上,看起来其他人也有同样的问题:***.com/questions/14617950/… 无论如何,不​​确定这个答案是否适用于所有现代编译器。 VS 2010 并没有那么旧。但那是 C++,你能说什么:)。 VS 2010 不是 C++ 2011 的完整实现。【参考方案3】:

可以有这个:

  template <typename T>
  string CovertToString ( T Number )
  
     ostringstream ss;
     ss << Number;
     return ss.str();
  

【讨论】:

我会考虑将其称为 NumberToString() 之外的其他名称,因为这适用于存在此类流式运算符的任何对象。

以上是关于如何将整数转换为字符串[重复]的主要内容,如果未能解决你的问题,请参考以下文章

将字符串数组转换为整数python [重复]

将字符串元素转换为整数C++ [重复]

将字符串形式的二进制转换为整数[重复]

将字符串转换为整数 [重复]

将字符串转换为整数参数[重复]

如何将字符串转换为枚举值到整数? [复制]