推荐使用std::stoi进行string转int,C++11引入,支持异常处理;2. stringstream兼容性好,适合多类型转换;3. atoi来自C语言,失败返回0,不推荐高要求场景;4. 其他类型可用stol、stoll等;5. int转string推荐to_string或stringstream。

在C++中,将string转为int是常见的操作。最常用的方法有几种,每种适用于不同场景,下面详细介绍string转int的方式,以及字符串与数值类型相互转换的完整方法。
std::stoi(string to integer)是C++11引入的便捷函数,能将字符串直接转为int类型。
示例:
#include <string>
#include <iostream>
int main() {
std::string str = "12345";
int num = std::stoi(str);
std::cout << num << std::endl; // 输出 12345
return 0;
}
注意:如果字符串无法转换(如包含非法字符),会抛出 std::invalid_argument 或 std::out_of_range 异常,建议用try-catch处理。
这是较传统但兼容性好的方式,适合老标准或需要同时处理多种类型的场景。
立即学习“C++免费学习笔记(深入)”;
示例:
#include <sstream>
#include <string>
#include <iostream>
int main() {
std::string str = "67890";
std::stringstream ss(str);
int num;
ss >> num;
std::cout << num << std::endl;
return 0;
}
优点是可链式读取多个值,也支持浮点、十六进制等格式。
atoi 来自C语言,需包含 <cstdlib>,它接受const char* 类型。
示例:
#include <cstdlib>
#include <string>
int main() {
std::string str = "42";
int num = std::atoi(str.c_str());
return 0;
}
缺点是失败时返回0,无法区分"0"和非法输入,不推荐用于健壮性要求高的程序。
除了int,C++还提供类似函数转换其他类型:
用法与 stoi 相同,只需替换函数名。
反过来,将int转string也有多种方式:
基本上就这些常见用法。推荐优先使用 std::stoi 和 std::to_string,简洁且安全。遇到异常情况记得加异常处理。转换不复杂,但细节决定稳定性。
以上就是C++ string转int怎么做_C++字符串与数值类型转换大全的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号