📅  最后修改于: 2023-12-03 15:13:57.299000             🧑  作者: Mango
在 C++ 中, 我们可以使用 std::stoi
函数将一个字符串转换成整数类型. 这个函数需要包含头文件 #include <string>
.
下面是一个简单的例子:
#include <iostream>
#include <string>
int main() {
std::string str = "123";
int num = std::stoi(str);
std::cout << "The integer value is: " << num << std::endl;
return 0;
}
输出:
The integer value is: 123
需要注意的是, 如果字符串中包含非数字字符, 在转换的时候会抛出一个 std::invalid_argument
异常.
我们可以在上面的例子中添加一个错误处理:
#include <iostream>
#include <string>
#include <stdexcept>
int main() {
std::string str = "123abc";
try {
int num = std::stoi(str);
std::cout << "The integer value is: " << num << std::endl;
} catch(const std::invalid_argument& e) {
std::cerr << "Invalid argument: " << e.what() << std::endl;
}
return 0;
}
输出:
Invalid argument: stoi
除了 std::stoi
, C++ 11 还引入了其它一些函数来在不同的进制之间进行转换. 例如:
std::stol
: 转换成长整型数类型.std::stoll
: 转换成长长整型数类型.std::stoul
: 转换成无符号长整型数类型.std::stoull
: 转换成无符号长长整型数类型.std::stof
: 转换成单精度浮点数类型.std::stod
: 转换成双精度浮点数类型.std::stold
: 转换成长双精度浮点数类型.可以根据需要选择对应的函数进行转换.
希望这篇文章对你有所帮助!