📅  最后修改于: 2023-12-03 14:39:53.931000             🧑  作者: Mango
wcstoul()
是C++中用于将字符串转换成无符号长整型数的函数。它通过扫描字符串并将数字字符转换成数字来完成这个过程。该函数的返回值是转换后的数值,如果没有可转换的字符,返回0。
unsigned long wcstoul(const wchar_t* str, wchar_t** endptr, int base);
str
:要转换的字符串。endptr
:指向一个指针,指针指向的位置会存储转换完成后未被转换的字符的指针。如果该参数为NULL,则表示不需要存储未被转换的字符位置。详见示例代码。base
:转换进制数。可取值范围为2-36。如果该参数为0,则会根据字符串前缀来自动选择进制。函数返回转换后的无符号长整型数。
#include <iostream>
#include <cwchar>
using namespace std;
int main() {
const wchar_t* str1 = L"100";
const wchar_t* str2 = L"3.14";
wchar_t* endptr;
unsigned long num1 = wcstoul(str1, &endptr, 10);
unsigned long num2 = wcstoul(str2, &endptr, 10);
wcout << num1 << endl; // 输出100
wcout << num2 << endl; // 输出0
return 0;
}
执行结果:
100
0
本示例代码中,我们分别将str1
和str2
转换为无符号长整型数。str1
只包含数字字符,所以能够完整转换为整数100,而str2
包含小数点字符,无法转换成整数,因此返回值为0。endptr
参数指向的指针会根据转换成功与否分别指向字符串后面的字符和字符串开头。