将整型转换为字符串
converting integer to string C++
我正在尝试将整数转换为字符数组,我遇到了这段代码
int i = 5;
std::string s;
std::stringstream out;
out << i;
s = out.str();
但是当我尝试打印s
的值时,它仍然打印5。我不知道它是否应该这样做,还是我做错了什么?此外,如果我能将相同的int转换为char数组,我会更喜欢。但我很感激在这件事上的任何帮助。谢谢!代码取自:itoa()的替代方案,用于将整数转换为字符串c++ ?
是的,它应该这样做。如果你对结果进行一些其他字符串类型的操作(例如,将它与其他字符串连接起来,在字符串中搜索字符),你会(主要)注意到直接打印数字的区别。
例如:
std::cout << i+i; // should print "10"
std::cout << s+s; // should print "55"
此外,我更希望我能将相同的int转换为char数组。
char *charPtr = new char[ s.length() + 1 ] ; // s is the string in the snippet posted
strcpy( charPtr, s.c_str() ) ;
// .......
delete[] charPtr ; // Should do this, else memory leak.
如果你不想再担心这样的问题,你可能会对boost/lexical_cast.hpp
感兴趣。
#include <boost/lexical_cast.hpp>
#include <string>
#include <iostream>
int main() {
const int i=5;
const char* s = boost::lexical_cast<std::string>(i).c_str();
std::cout << s << std::endl;
}
相关文章:
- 如何将包含epoch时间的十六进制字符串转换为time_t
- 当字符串存储在变量中时,如何将字符串转换为wchar_t
- 如何将这个std::字符串转换为std::基本字符串
- 如何正确将字符串转换为标准::时间::system_clock::time_point?
- 如何在C++中将十六进制字符串转换为文本数据
- 需要帮助在 c++ 中将字符串转换为字符 ----错误 "const char *" 类型的值不能用于初始化 "char" 类型的实体
- 如何从字符串转换为双精度*
- C++:如何将 unix 时间的字符串转换为 *tm?(使用时间错误:"cannot convert 'String' to 'tm*' ")
- 如何在C++中将 Python 字符串转换为其转义版本?
- 如何在 C++11 中将标准::字符串转换为标准::u32字符串?
- 如何将整数字符串转换为整数的二维向量?
- 使用 "stringstream " 将字符串转换为整数
- 将字符串转换为浮点数或整数,而无需使用内置函数(如 atoi 或 atof)
- 将文件复制到自定义位置,存在字符串转换问题
- 将ANSI C字符串转换为UNICODE
- 如何将节点 V8 字符串转换为 C++ 字符串
- 在C++中将字符串转换为双精度,而无需科学记数法
- 使用从文件(stod、strtod、atof)中提取的数据C++从字符串转换为双精度.csv
- 如何在C++中将字符串转换为双精度?
- 将字符串转换为无符号字符数组/字节数组