std::stoi
是 C++11 引入的一个标准库函数,它用于将字符串转换为整数。这个函数定义在头文件 <string>
中。std::stoi
函数尝试将字符串参数转换为一个 int
类型的值。如果转换成功,它会返回转换后的整数值;如果转换失败,它会抛出一个 std::invalid_argument
异常。
std::stoi
函数的基本用法如下
用法:
#include <iostream>
#include <string>
int main() {
std::string str = "123";
try {
int num = std::stoi(str);
std::cout << "转换后的整数是: " << num << std::endl;
} catch (std::invalid_argument const &e) {
std::cerr << "无效的参数: " << e.what() << '\n';
} catch (std::out_of_range const &e) {
std::cerr << "数值超出范围: " << e.what() << '\n';
}
return 0;
}
在上面的例子中,std::stoi
尝试将字符串 "123"
转换为整数,并成功转换。如果字符串不能被转换为一个整数(例如,如果它包含非数字字符),则会抛出 std::invalid_argument
异常。如果转换后的数值超出了 int
类型能表示的范围,则会抛出 std::out_of_range
异常。
std::stoi
函数还有一些变体,例如 std::stol
(转换为 long
)、std::stoll
(转换为 long long
)、std::stoul
(转换为 unsigned long
)、std::stoull
(转换为 unsigned long long
),它们提供了更多的灵活性来处理不同大小和符号的整数类型。