📜  C++ wcstoull()(1)

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

C++函数介绍:wcstoull()

简介

在C++语言中,wcstoull()函数是用来将字符串(widestring)转换成无符号长长整型(unsigned long long int)的。wcstoull()函数属于 C++ 标准库中的宽字符集(Wide Character)函数。

函数原型
unsigned long long int wcstoull(const wchar_t* str, wchar_t** endptr, int base);
函数参数
  • str: 待转换的字符串指针,类型是wchar_t*
  • endptr: 转换结束的指针,类型是wchar_t**,如果endptr非空,则它指向的值被设置为转换后的字符串后面的字符的指针,即指向转换结束标记'\0'或者第一个无效字符的指针
  • base: 转换时使用的进制,类型是int,取值范围必须在2到36之间
函数返回值

返回一个无符号长长整型数值,表示转换后的结果。

使用示例
#include <iostream>
#include <stdlib.h>
using namespace std;

int main()
{
    wchar_t *str = L"18446744073709551615"; // ULLONG_MAX
    wchar_t *endptr = nullptr;
    unsigned long long int num = wcstoull(str, &endptr, 0);
    if (endptr != str && *endptr == '\0') {
        cout << "Success! Converted value: " << num << endl;
    } else {
        cout << "Error!" << endl;
    }

    return 0;
}
输出结果
Success! Converted value: 18446744073709551615
程序说明

上述代码演示了如何使用wcstoull()函数将表示为字符串的最大无符号长长整型数值(ULLONG_MAX)转换为无符号长长整型数值。在这个例子中,将不同的进制传递给wcstoull()函数会导致不同的转换结果。如果它在转换过程中遇到非法字符,那么它会停止并将*endptr设为指向非法字符的位置,并返回转换成功的部分。而在这个例子中,传递进去的是0代表按默认进制转换。

总结
  • wcstoull()函数用于将宽字符串转换成无符号长长整型数值
  • 操作时需要注意进制值的选择和如何解析转换过程的结束标记。