C/C++ strtod函数

最后更新于:2020-07-07 20:27:11

一.strtod函数简介

stdlib.hatof函数,可用于将char字符串转为float/double浮点数类型,而今天要介绍另外一个C语言函数-strtod函数,同样也能将char字符串转为float/double类型,语法如下:

/*
*描述:strtod函数会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,
*       到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。
*       若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。
*       参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。
*
*参数: 
*   [in] nptr:字符串类型
*   [out] endptr:字符串类型
*   
*返回值:返回char类型对应的浮点数double
*/

double strtod(const char *nptr, char **endptr);

二.strtod函数函数实战

/************************************************************************/
/*@文件名      : strtod.cpp
/*@日  期      : 2020/6/22 19:37
/*@作  者      : 猿说编程
/*@公众号      : 猿说编程
/*@博客        : www.shuopython.com
/*@描述        : strtod函数用法 - C/C++教程
/************************************************************************/

#include "stdafx.h"
#include <stdio.h>
#include "windows.h"

#pragma warning(disable: 4996)

int _tmain(int argc, _TCHAR* argv[])
{
    char *pOutStr;
    char szStr1[] = "12345.6789";
    char szStr2[] = "1234.567www.shuopython.com";
    char szStr3[] = "-232.23e4";

    printf("szStr1=%lf\n", strtod(szStr1, NULL));
    printf("szStr2=%lf\n", strtod(szStr2, &pOutStr));//获取字符串部分
    printf("pOutStr=%s\n", pOutStr);
    printf("szStr3=%lf\n", strtod(szStr3, NULL));

    system("pause");

    return 0;
}

输出
szStr1=12345.678900
szStr2=1234.567000
pOutStr=www.shuopython.com
szStr3=-2322300.000000
请按任意键继续. . .

注意占位符的使用:

浮点是使用 %f
整数是使用 %d
char字符是使用 %c
char字符串是使用 %s


猜你喜欢

1. 三目运算符

2. 逗号表达式

3. 自加自减运算符(++i/i++)

4. wprintf输出中文乱码

5. unicode和多字节区别




转载请注明: 猿说编程 » C/C++教程 » strtod函数



技术交流、商务合作请直接联系博主
扫码或搜索:猿说编程

python/C++教程

猿说编程
微信公众号 扫一扫关注