- std :: stol() :此函数将在函数调用中作为参数提供的字符串转换为long int。它解析str并将其内容解释为指定基数的整数,并将其作为long int类型的值返回。
句法:
long int stol (const string& str, size_t* idx = 0, int base = 10)
参数:该函数接受三个参数,如下所述:
- str:它指定一个字符串对象,并以整数表示。
- idx :它指定一个指向size_t类型的对象的指针,该指针的值由函数设置为数值后面的str中下一个字符的位置。该参数也可以是空指针,在这种情况下不使用它。
- base :它指定数字基数,以确定用来解释字符的数字系统。如果基数为0,则要使用的基数由序列中的格式确定。预设值为10。
返回值:该函数将转换后的整数作为long int类型的值返回。
// CPP code for illustration // of stol() function. #include
using namespace std; int main() { // converting decimal number. string dec_num = "9876543210"; cout << "dec_num = " << stol(dec_num, nullptr, 10) << "\n"; // converting hexadecimal number. string hex_num = "FFFFFF"; cout << "hex_num = " << stol(hex_num, nullptr, 16) << "\n"; // converting binary number. string binary_num = "1111111"; cout << "binary_num = " << stol(binary_num, nullptr, 2) << "\n"; return 0; } 输出:dec_num = 9876543210 hex_num = 16777215 binary_num = 127
- std :: stoll():此函数将在函数调用中作为参数提供的字符串转换为long long int。它解析str并将其内容解释为指定基数的整数,并将其作为long long int类型的值返回。
句法:
long long int stoll (const string& str, size_t* idx = 0, int base = 10)
- 参数:该函数接受三个参数,如下所述:
- str:此参数指定具有整数表示形式的String对象。
- idx:此参数指定指向size_t类型的对象的指针,该对象的值由函数设置为数值后str中下一个字符的位置。此参数也可以是空指针,在这种情况下,将不使用该参数。
- base:此参数指定数字基数,以确定用于解释字符的数字系统。如果基数为0,则它使用的基数由序列中的格式确定。默认基数为10。
返回值:该函数将转换后的整数作为long long int类型的值返回。
// CPP code for illustration // of stoll() function. #include
using namespace std; int main() { // converting decimal number. string dec_num = "9876543210"; cout << "dec_num = " << stoll(dec_num, nullptr, 10) << "\n "; // converting hexadecimal number. string hex_num = "FFFFFF"; cout << "hex_num = " << stoll(hex_num, nullptr, 16) << "\n"; // converting binary number. string binary_num = "1111111"; cout << "binary_num = " << stoll(binary_num, nullptr, 2) << "\n"; return 0; } 输出:dec_num = 9876543210 hex_num = 16777215 binary_num = 127
错误和异常:如果无法执行任何转换,则会抛出invalid_argument异常。如果读取的值超出可表示值范围的整数,则将抛出invalid_argument或out_of_range异常。
// CPP code for illustration of stoll()
// function when invalid_argument
// exception is thrown.
#include
using namespace std;
int main() {
// An invalid input string that has no
// integer part.
string invalid_num = "abcf$#@de";
// stoll() throws invalid_argument exception
// when conversion process fails.
try{
cout << stoll(invalid_num) << "\n";
}
// catch invalid_argument exception.
catch(const std::invalid_argument){
cerr << "Invalid argument" << "\n";
}
return 0;
}
输出:
Runtime Errors:
Invalid argument
想要从精选的最佳视频中学习并解决问题,请查看有关从基础到高级C++的C++基础课程以及有关语言和STL的C++ STL课程。要完成从学习语言到DS Algo等的更多准备工作,请参阅“完整面试准备课程” 。