📅  最后修改于: 2023-12-03 15:29:51.808000             🧑  作者: Mango
在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()
函数用于将宽字符串转换成无符号长长整型数值