答案:C++中数字转字符串常用方法包括std::to_string、stringstream和fmt库,其中std::to_string最简单,适合基本类型;stringstream支持格式控制,适用于复杂场景;fmt库性能好且语法清晰,适合现代C++项目。反向转换可用std::stoi、std::stod或std::from_chars。推荐优先使用std::to_string,需格式化时选用后两者,并注意浮点数精度处理。
在C++中,将数字转换为字符串有多种方法,常用的方式简洁高效,适合不同场景。以下是几种主流且实用的转换方式。
使用 std::to_string 函数
std::to_string 是最简单直接的方法,支持整型、浮点型等基本数值类型转字符串。
- 适用于 int、long、float、double 等类型
- 头文件
中定义,无需额外包含 - 用法简单,可直接调用
示例代码:
int num = 123; std::string str = std::to_string(num); double pi = 3.14159; std::string pi_str = std::to_string(pi); // 结果可能包含多余小数位
使用 stringstream 流操作
通过 std::stringstream 可以灵活控制格式,适合需要格式化输出的场景。
- 需包含头文件
- 支持自定义精度、进制等格式
- 适合复杂转换逻辑
示例代码:
#include#include int num = 456; std::stringstream ss; ss << num; std::string str = ss.str();
使用 fmt 或第三方库(如 fmtli
b)
现代C++项目中,fmt 库因其高性能和易用性被广泛采用,C++20也开始引入格式化库。
- 语法清晰,性能优于 stringstream
- 支持类似 Python 的 format 写法
- 可处理复杂格式需求
示例(使用 fmt):
#includestd::string str = fmt::format("{}", 789);
字符串转回数字的方法
除了数字转字符串,反过来也可以:
- std::stoi:转 int
- std::stod:转 double
- std::from_chars(C++17起):高效无异常解析
示例:
std::string str = "123";
int num = std::stoi(str);
double val = std::stod("3.14");
基本上就这些常用方法。日常开发推荐优先使用 std::to_string,对格式要求高时选 stringstream 或 fmt。不复杂但容易忽略的是浮点数转换后的小数位控制,必要时需手动设置精度。

b)






