在C++中将int转换为等价字符串的最简单方法是什么?我知道两种方法。有没有更简单的方法?
(1)
int a = 10;
char *intStr = itoa(a);
string str = string(intStr);
(2)
int a = 10;
stringstream ss;
ss << a;
string str = ss.str();
在C++中将int转换为等价字符串的最简单方法是什么?我知道两种方法。有没有更简单的方法?
(1)
int a = 10;
char *intStr = itoa(a);
string str = string(intStr);
(2)
int a = 10;
stringstream ss;
ss << a;
string str = ss.str();
当前回答
这对我有用-
我的代码:
#include <iostream>
using namespace std;
int main()
{
int n = 32;
string s = to_string(n);
cout << "string: " + s << endl;
return 0;
}
其他回答
string number_to_string(int x) {
if (!x)
return "0";
string s, s2;
while(x) {
s.push_back(x%10 + '0');
x /= 10;
}
reverse(s.begin(), s.end());
return s;
}
C++17提供std::to_chars作为一种更高性能的独立于语言环境的替代方案。
这是另一个简单的方法
char str[100];
sprintf(str, "%d", 101);
string s = str;
sprintf是一种众所周知的将任何数据插入所需格式的字符串的方法。
您可以将char*数组转换为字符串,如第三行所示。
sprintf()非常适合格式转换。然后,可以像在1中那样将生成的C字符串分配给C++字符串。
使用普通标准stdio标头,可以将sprintf上的整数强制转换为缓冲区,如下所示:
#include <stdio.h>
int main()
{
int x = 23;
char y[2]; // The output buffer
sprintf(y, "%d", x);
printf("%s", y)
}
记住根据您的需要(字符串输出大小)注意缓冲区的大小。