📅  最后修改于: 2023-12-03 14:39:39.116000             🧑  作者: Mango
在C++中,要将字符串类型的数字转换为整型(int、long、long long等),可以使用标准库中的std::stoi()
、std::stol()
和std::stoll()
函数。其中,std::stol()
和std::stoll()
函数可以将字符串类型的数字转换为长整型(long和long long),并返回其对应的整型值。
#include <string>
long stol (const string& str, size_t* idx = 0, int base = 10);
long long stoll (const string& str, size_t* idx = 0, int base = 10);
std::stol()
和std::stoll()
函数的参数相同,包括输入字符串str
、parse过程的开始位置idx
和进制数base
。其中,str
是待转换的字符串,idx
是可选参数,用于指示parse过程开始的位置,base
是指定的进制数。如果str
中包含非数字字符,或者数字超出了所选进制数的范围,会出现异常。
std::stol()
函数返回的数据类型是long
,而std::stoll()
函数返回的数据类型是long long
。
示例代码:
#include <iostream>
#include <string>
using namespace std;
int main() {
string str1 = "123";
string str2 = "9223372036854775807"; // long long 类型的最大值
long num1 = stol(str1);
long long num2 = stoll(str2);
cout << "num1 = " << num1 << endl;
cout << "num2 = " << num2 << endl;
return 0;
}
输出结果:
num1 = 123
num2 = 9223372036854775807
std::stol()
和std::stoll()
函数只能将纯数字的字符串转换为整型,如果有空格、符号等非数字字符,会出现异常;idx
的初始值指向一个非数字字符或负数,std::stol()
和std::stoll()
函数会返回0;std::stof()
和std::stod()
函数。std::stol()
和std::stoll()
函数是C++标准库中用于将字符串类型的数字转换为长整型的函数,能够方便地进行数据类型转换,是C++开发中十分常用的功能函数。在使用过程中需要注意输入参数的格式,以及转换的结果是否超出了指定进制数的范围。