stoi函数如何使用
时间: 2024-12-18 08:14:28 浏览: 13
`stoi`函数是C++标准库中的一个成员函数,它用于将字符串表示的整数转换为整型(`int`)。它的全名是`std::stoi(const string& str, size_t* pos = nullptr, int base = 10)`。以下是使用`stoi`函数的基本步骤:
1. 首先,确保传入的字符串是一个有效的数字表达式,可以包含正负号和十进制、十六进制(base=16)或其他指定基数的数字。
2. 函数接受一个`string`类型的参数`str`,这是待转换的字符串。
3. 可选参数`size_t* pos`是一个指针,指向输入字符串中的第一个未处理字符的位置。如果提供这个参数,函数会更新其值为转换结束后的下一个位置。
4. `int base`参数用于指定输入字符串可能使用的基数,默认为10(十进制);如果是其他进制(如16代表十六进制),可以将其设置为相应数值。
5. 调用`stoi`函数,如果字符串能成功解析成一个整数,返回对应的整数值;如果字符串不是有效的数字或超出了`int`类型的范围,将会抛出`std::invalid_argument`或`std::out_of_range`异常。
示例:
```cpp
#include <iostream>
#include <string>
int main() {
std::string num_str = "123";
try {
int num = std::stoi(num_str);
std::cout << "The integer is: " << num << std::endl;
} catch (const std::invalid_argument& e) {
std::cerr << "Invalid argument: " << e.what() << std::endl;
} catch (const std::out_of_range& e) {
std::cerr << "Number out of range: " << e.what() << std::endl;
}
return 0;
}
```
在这个例子中,`num_str`会被转换成整数123并打印出来。如果字符串不是一个有效的数字,错误信息就会被捕获并输出。
阅读全文