📅  最后修改于: 2023-12-03 14:59:36.232000             🧑  作者: Mango
wcstol()
函数wcstol()
函数是C/C++中的标准库函数之一,用于将宽字符串转换成长整型数。它可以用于具有不同基数(例如:十进制、八进制、十六进制等)的数字字符串。
long int wcstol(const wchar_t* str, wchar_t** endptr, int base);
str
:需要转换成长整型的宽字符串endptr
:用于存储转换结束位置的指针,如果没有进行转换,则该值等于str
base
:基数,即数字字符的进位系统(10表示十进制数,16表示十六进制数,8表示八进制数等)如果转换成功,则返回长整型数值;如果在转换时发生错误,则返回0。
下面是一个简单的示例,演示了如何将宽字符串转换成长整型数:
#include <iostream>
#include <cstdlib>
using namespace std;
int main() {
wchar_t str[] = L"12345";
wchar_t* endptr = nullptr;
long int val = wcstol(str, &endptr, 10);
wcout << "String: " << str << endl;
wcout << "Value: " << val << endl;
wcout << "End pointer: " << (void*)endptr << endl;
return 0;
}
输出结果为:
String: 12345
Value: 12345
End pointer: 0x16
wcstol()
函数在进行转换时,会跳过字符串中的空格和制表符等空白字符。如果endptr
指向的字符不是数字字符,则转换会停止。long int
类型的范围,那么wcstol()
函数会返回LONG_MAX
或LONG_MIN
。如果转换的结果没有超出long int
类型的范围,但是endptr
指向的字符不是数字字符,则转换会停止,返回值为转换成功的部分。str
参数为NULL
或空指针,则wcstol()
函数会返回0。如果base
参数不是2到36之间的整数,则会返回0。