📅  最后修改于: 2023-12-03 15:29:54.039000             🧑  作者: Mango
在C++中,有许多函数可以将字符串转换为数字。std::stoi
和std::stod
是两个常用的函数,但是当我们需要转换为unsigned long
或unsigned long long
类型时,我们可以使用std::stoul
和std::stoull
。
std::stoul
函数将字符串转换为unsigned long
类型数。它的函数声明如下:
unsigned long std::stoul(const std::string& str, std::size_t* pos = 0, int base = 10);
str
:需要转换为无符号长整型数的字符串。pos
:指向转换结束时的最后一个字符的指针。可以传入nullptr
,表示不需要监测该值。base
:表示转换进制,取值范围为2-36,默认为10进制。下面是一个使用std::stoul
的示例:
#include <iostream>
#include <string>
int main() {
std::string str = "123456";
unsigned long num = std::stoul(str);
std::cout << num << std::endl;
return 0;
}
输出结果为:
123456
std::stoull
函数将字符串转换为unsigned long long
类型数。它的函数声明如下:
unsigned long long std::stoull(const std::string& str, std::size_t* pos = 0, int base = 10);
str
:需要转换为无符号长长整型数的字符串。pos
:指向转换结束时的最后一个字符的指针。可以传入nullptr
,表示不需要监测该值。base
:表示转换进制,取值范围为2-36,默认为10进制。下面是一个使用std::stoull
的示例:
#include <iostream>
#include <string>
int main() {
std::string str = "1234567890123456";
unsigned long long num = std::stoull(str);
std::cout << num << std::endl;
return 0;
}
输出结果为:
1234567890123456
std::stoul
和std::stoull
是将字符串转换为unsigned long
和unsigned long long
类型数的函数。我们可以通过第二个参数监测转换结束时的最后一个字符位置。基本用法和std::stoi
差不多,只是返回值类型不同。