如何在C++中将long转换为字符串?

Arn*_*psa 53 c++

如何在C++中将longa 转换为a string

jic*_*chi 64

在C++ 11中,<string>中实际存在std :: to_string和std :: to_wstring函数.

string to_string(int val);
string to_string(long val);
string to_string(long long val);
string to_string(unsigned val);
string to_string(unsigned long val);
string to_string(unsigned long long val);
string to_string(float val);
string to_string(double val);
string to_string (long double val);
Run Code Online (Sandbox Code Playgroud)


Sku*_*del 52

你可以使用stringstream.

#include <sstream>

// ...
std::string number;
std::stringstream strstream;
strstream << 1L;
strstream >> number;
Run Code Online (Sandbox Code Playgroud)

标准库中通常还有一些专有的C函数可供编译器使用.我更喜欢更"便携"的变体.

C方式可以使用sprintf,但这不是很安全.在某些库中,有一些新版本,如sprintf_s,可以防止缓冲区溢出.


Gor*_*man 23

好吧,如果你是复制粘贴的粉丝,这里是:

#include <sstream>

template <class T>
inline std::string to_string (const T& t)
{
    std::stringstream ss;
    ss << t;
    return ss.str();
}
Run Code Online (Sandbox Code Playgroud)


Ben*_*key 9

int main()
{
    long mylong = 123456789;
    string mystring;
    stringstream mystream;
    mystream << mylong;
    mystring = mystream.str();
    cout << mystring << "\n";
    return 0;
}
Run Code Online (Sandbox Code Playgroud)


bee*_*f2k 8

我不知道这是什么类型的家庭作业,但很可能老师不想要一个你只是称之为"魔法"现有功能的答案(即使这是推荐的做法),但他想看到如果你可以自己实现这个.

回到过去,我的老师常常说"我想看看你是否可以自己编程,而不是你能在系统中找到它".好吧,他有多么错;)..

无论如何,如果你的老师是相同的,这是很难做到的..

std::string LongToString(long value)
{
  std::string output;
  std::string sign;

  if(value < 0)
  {
    sign + "-";
    value = -value;
  }

  while(output.empty() || (value > 0))
  {
    output.push_front(value % 10 + '0')
    value /= 10;
  }

  return sign + output;
}
Run Code Online (Sandbox Code Playgroud)

你可以说使用std::string不是"艰难的方式",但我想在实际的算法中有什么重要性.


Yoc*_*mer 6

您可以在C ++ 11中使用std :: to_string

long val = 12345;
std::string my_val = std::to_string(val);
Run Code Online (Sandbox Code Playgroud)


Fre*_*son 5

有几种方法。阅读Manor Farm 的字符串格式化程序进行深入比较。