std::stol 是 C++ 标准库中的一个函数,用于将字符串转换为 long 类型的整数。这个函数定义在头文件 <string> 中。std::stol 是 "string to long" 的缩写,意思是将字符串转换为 long。
函数的原型如下:
long std::stol(const char* nptr, std::streamsize* idx = 0, int base = 10);
nptr:指向要转换的字符串的指针。
idx:一个可选参数,用于存储转换过程中遇到的第一个无法转换的字符在字符串中的位置。如果提供了这个参数,并且转换成功,它将被设置为 0。如果转换失败,它将被设置为第一个无效字符的位置。
base:指定转换的基数(即数字的进制)。它必须是 2、8、10 或 16。如果省略或设置为 0,函数将根据字符串的前缀来确定基数(如果字符串以 "0x" 或 "0X" 开头,则基数为 16;如果字符串以 "0" 开头,则基数为 8;否则,基数为 10)。
如果转换成功,std::stol 返回转换得到的 long 类型整数。如果转换失败,它将抛出一个 std::invalid_argument 异常(如果字符串不包含可转换的数字序列)或 std::out_of_range 异常(如果转换的结果超出了 long 类型能够表示的范围)。
#include <string>
const std::string str = "12345";
//全文核心在这里
long number = std::stol(str.c_str());