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

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

C/C++中的wcstod()函数

简介

wcstod()函数是一种用于将字符串转换为浮点数的标准库函数,它的功能与strtod()函数类似,但是可处理Unicode字符。

double wcstod(const wchar_t* wcs, wchar_t** endptr);

wcstod()函数接受一个表示浮点数的字符串和一个指向字符指针的指针参数,返回浮点数的值。如果转换成功,则将endptr指向转换后第一个未转换的字符的地址,否则不更新指针值。

参数
  1. wcs:需要被转换为浮点数的字符串,它是一个宽字符字符串。
  2. endptr:指向一个指针的指针,它指向的变量将指向科学计数法或十进制标志字符串中的第一个非转义字符。
返回值

如果转换成功,则返回所得到的浮点数值。如果目标字符串无法解释为浮点数,则此函数返回0.0。

示例
#include <wchar.h>
#include <stdio.h>

int main() {
    wchar_t* str = L"10.5";
    wchar_t* end;
    double num = wcstod(str, &end);
    wprintf(L"num = %lf\n", num);
    wprintf(L"endptr = %ls\n", end);
    return 0;
}

运行结果:

num = 10.500000
endptr =
注意事项
  1. wcstod()函数是线程安全的,但是需要自己管理指针空间,不然会产生内存泄漏问题。
  2. wcs字符串必须是以可转换为浮点数的数值开始的。
  3. 如果指定的值(例如指数)太大,则返回+"inf"或-"inf"(如果是负指数)表示的浮点值。
  4. 如果wcs不包含数值,则返回NaN("不是数字")表示的浮点值。
  5. endptr可以为nullptr,这样就不会返回不必要的指针。