- 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 <bits/stdc++.h> 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 <bits/stdc++.h> 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 <bits/stdc++.h>
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
相关用法
注:本文由纯净天空筛选整理自nik1996大神的英文原创作品 std::stol() and std::stoll() functions in C++。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。