C++中int转string常用方法包括:①std::to_string(C++11推荐)直接转换;②std::stringstream灵活格式化;③sprintf(需防溢出,较少用);反向可用std::stoi(注意异常处理)。

在C++中,将int转换为string是常见操作。有多种方法可以实现这一转换,每种方式适用于不同场景。以下是几种常用且高效的转换技巧。
使用 to_string 函数(推荐)
C++11 起提供了std::to_string函数,可以直接将整数转换为字符串,简单直观。
#include
#include
int main() {
int num = 123;
std::string str = std::to_string(num);
std::cout << str << std::endl; // 输出: 123
return 0;
}
这种方法最直接,适用于大多数情况,无需额外引入流对象。
使用 stringstream 流处理
通过std::stringstream也可以完成转换,虽然写法稍繁琐,但在需要格式化输出时更灵活。
立即学习“C++免费学习笔记(深入)”;
示例代码:
#include
#include
#include
int main() {
int num = 456;
std::stringstream ss;
ss << num;
std::string str;
ss >> str;
std::cout << str << std::endl; // 输出: 456
return 0;
}
也可简写为:std::string str = ss.str(); 来获取结果。
使用 C 风格 sprintf(较少推荐)
借助sprintf或snprintf将数字格式化到字符数组,再转为std::string。适合与C语言混合编程的场景。
#include
#include
#include
int main() {
int num = 789;
char buffer[20];
snprintf(buffer, sizeof(buffer), "%d", num);
std::string str(buffer);
std::cout << str << std::endl; // 输出: 789
return 0;
}
注意缓冲区大小,避免溢出。现代C++中建议优先使用前两种方法。
string 转 int 的反向转换
补充一下,如果需要将string转回int,可使用std::stoi函数。
#include
#include
int main() {
std::string str = "100";
int num = std::stoi(str);
std::cout << num + 1 << std::endl; // 输出: 101
return 0;
}
该函数会抛出异常(如std::invalid_argument)当字符串无法转换,使用时建议加异常处理。
基本上就这些。日常开发中,std::to_string和std::stoi已能满足绝大多数需求,简洁高效。不复杂但容易忽略细节,比如异常安全和缓冲区长度控制。根据项目环境选择合适方式即可。











