C++中int转string最推荐使用std::to_string,它自C++11起成为标准,语法简单、类型安全,只需包含头文件,适用于整型和浮点型转换。

在C++中,将int类型转换为string类型是常见的操作。随着C++11标准的引入,std::to_string 成为了最简单直接的方法。本文汇总几种常用的int转string的方式,并重点详解C++11中 to_string 函数的使用。
1. 使用 C++11 的 to_string 函数
std::to_string 是C++11新增的标准库函数,定义在
基本语法:
std::string to_string(int value);std::string to_string(long value);
std::string to_string(long long value);
std::string to_string(unsigned value);
// 还支持 float, double 等
示例代码:
立即学习“C++免费学习笔记(深入)”;
#include iostream>#include
int main() {
int num = 123;
std::string str = std::to_string(num);
std::cout return 0;
}
输出:
转换结果: 123优点: 用法简单,无需额外头文件(除了
注意: to_string 在某些极端情况下可能产生平台相关的精度问题(如浮点数),但对于int类型转换非常可靠。
2. 使用 stringstream(传统方法)
在C++11之前,常用 std::stringstream 实现类型转换。这种方法兼容性好,适用于老标准。
示例:
#include#include
#include
int main() {
int num = 456;
std::stringstream ss;
ss std::string str;
ss >> str;
// 或者直接:str = ss.str();
std::cout return 0;
}
也可以简化为一行:
std::string str = std::stringstream().str(num);但更推荐写成:
std::string str = std::to_string(num); // 更简洁
3. 使用 boost::lexical_cast(第三方库)
如果你使用 Boost 库,boost::lexical_cast 提供了泛型的类型转换方式。
#include#include
int main() {
int num = 789;
std::string str = boost::lexical_cast<:string>(num);
return 0;
}
该方法功能强大,支持自定义类型的转换,但需要引入Boost,适合大型项目或已有Boost依赖的工程。
4. 手动实现(不推荐)
虽然可以手动通过除法和取模实现数字转字符串,但容易出错且效率低,标准库已提供更好方案,因此不建议自行实现。
基本上就这些常用方法。对于现代C++开发,优先使用 std::to_string,简洁高效,可读性强。其他方法可在特定场景下作为备选。不复杂但容易忽略的是包含正确的头文件和确保编译器支持C++11及以上标准。










