📜  C C++中的wcstol()函数(1)

📅  最后修改于: 2023-12-03 14:59:36.232000             🧑  作者: Mango

C/C++中的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_MAXLONG_MIN。如果转换的结果没有超出long int类型的范围,但是endptr指向的字符不是数字字符,则转换会停止,返回值为转换成功的部分。
  • 如果str参数为NULL或空指针,则wcstol()函数会返回0。如果base参数不是2到36之间的整数,则会返回0。