答案:C++中string与int互转常用std::stoi和std::to_string,兼容性好且简洁安全。

在C++中,string 与 int 之间的转换是常见操作。下面分别介绍 string 转 int、int 转 string 的常用方法,清晰实用。
string 转 int
将字符串(如 "123")转换为整数类型,有以下几种推荐方式:
- std::stoi:最简单直接,适用于 C++11 及以上版本。
如果字符串不是有效数字(如 "abc"),会抛出异常(如 std::invalid_argument)。
- std::stringstream:兼容性好,适合老标准或复杂场景。
int num;
ss >> num;
- strtol / atoi(C 风格):可用于底层处理,但不推荐新手使用,因缺乏类型安全。
int 转 string
将整数转为字符串,也有多种方式:
立即学习“C++免费学习笔记(深入)”;
- std::to_string:C++11 提供,简洁高效。
- std::stringstream:灵活,适合拼接数字和文本。
ss std::string str = ss.str();
注意事项
转换时需注意异常处理和输入合法性:
- 使用 std::stoi 前最好判断字符串非空且只含数字(可配合 isdigit 等检查)。
- 负数字符串(如 "-123")也能正确转换。
- 包含多余字符的字符串(如 "123abc")可能只转换前缀部分,需根据需求判断是否接受。











