stoi
是 C++11 标准引入的一个函数,用于将字符串转换为整数。以下是详细的解释:
基本用法
stoi
是一个标准库函数,定义在 <string>
头文件中。它的主要功能是将 std::string
或 C
风格字符串转换为 int
类型。
函数签名如下:
1 | int stoi(const std::string& str, std::size_t* pos = nullptr, int base = 10); |
特点和注意事项
-
输入参数:
str
: 要转换的字符串。pos
: 一个指向std::size_t
的指针,用于存储第一个未处理字符的位置。如果不需要这个信息,可以传递nullptr
。base
: 基数,用于指定数字的进制,默认为 10。支持 2 到 36 之间的任何进制。
-
返回值:
- 成功时,返回字符串转换后的
int
值。
- 成功时,返回字符串转换后的
-
异常处理:
std::invalid_argument
: 如果字符串不包含有效的数字,将抛出该异常。std::out_of_range
: 如果转换结果超出了int
类型的范围,将抛出该异常。
-
注意事项:
- 确保输入字符串是有效的整数表示,否则会抛出异常。
- 注意检查异常以防止程序崩溃。
stoi
仅能处理表示整数的字符串,对于浮点数转换请使用stof
、stod
或stold
。
示例代码
以下是一些使用 stoi
的示例代码:
1 |
|
结论
stoi
是一个非常有用的函数,适用于从字符串中提取整数值。通过正确的异常处理,可以安全地使用它来处理不同格式的输入。