📜  C++中的std :: stoul和std :: stoull(1)

📅  最后修改于: 2023-12-03 15:29:54.039000             🧑  作者: Mango

C++中的std::stoul和std::stoull

在C++中,有许多函数可以将字符串转换为数字。std::stoistd::stod是两个常用的函数,但是当我们需要转换为unsigned longunsigned long long类型时,我们可以使用std::stoulstd::stoull

std::stoul

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

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::stoulstd::stoull是将字符串转换为unsigned longunsigned long long类型数的函数。我们可以通过第二个参数监测转换结束时的最后一个字符位置。基本用法和std::stoi差不多,只是返回值类型不同。