精华内容
下载资源
问答
  • strtod

    2019-12-08 00:44:19
    strtod 将字符串转换成浮点数 相关函数 atoi,atol,strtod,strtol,strtoul 表头文件 #include <stdlib.h> 定义函数 double strtod(const char *nptr,char **endptr); 函数说明 strtod()会扫描...

    strtod

    将字符串转换成浮点数

    相关函数

    atoi,atol,strtod,strtol,strtoul

    表头文件

    #include <stdlib.h>
    

    定义函数

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

    函数说明

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

    返回值

    返回转换后的浮点型数。

    附加说明

    参考atof()。

    范例

    #include <stdlib.h>
    #include <stdio.h>
    
    int main()
    {
            char a[] = "10000000000";
            char b[] = "-10000000000";
            char c[] = "1ffff";
            char d[] = "ffff";
    
            printf("a = %lf\n",strtod(a,NULL));
            printf("b = %lf\n",strtod(b,NULL));
            printf("c = %lf\n",strtod(c,NULL));
            printf("d = %lf\n",strtod(d,NULL));
    
            return 0;
    }
    

    执行

    a = 10000000000.000000
    b = -10000000000.000000
    c = 1.000000
    d = 0.000000
    

    man 

    STRTOD(3)                                 Linux Programmer's Manual                                STRTOD(3)
    
    NAME
           strtod, strtof, strtold - convert ASCII string to floating-point number
    
    SYNOPSIS
           #include <stdlib.h>
    
           double strtod(const char *nptr, char **endptr);
           float strtof(const char *nptr, char **endptr);
           long double strtold(const char *nptr, char **endptr);
    
       Feature Test Macro Requirements for glibc (see feature_test_macros(7)):
    
           strtof(), strtold():
               _XOPEN_SOURCE >= 600 || _ISOC99_SOURCE || _POSIX_C_SOURCE >= 200112L;
               or cc -std=c99
    
    DESCRIPTION
           The  strtod(), strtof(), and strtold() functions convert the initial portion of the string pointed to
           by nptr to double, float, and long double representation, respectively.
    
           The expected form of the (initial portion of the) string is optional leading white  space  as  recog‐
           nized by isspace(3), an optional plus ('+') or minus sign ('-') and then either (i) a decimal number,
           or (ii) a hexadecimal number, or (iii) an infinity, or (iv) a NAN (not-a-number).
    
           A decimal number consists of a nonempty sequence of decimal digits possibly containing a radix  char‐
           acter  (decimal  point, locale-dependent, usually '.'), optionally followed by a decimal exponent.  A
           decimal exponent consists of an 'E' or 'e', followed by an optional plus or minus sign, followed by a
           nonempty sequence of decimal digits, and indicates multiplication by a power of 10.
    
           A hexadecimal number consists of a "0x" or "0X" followed by a nonempty sequence of hexadecimal digits
           possibly containing a radix character, optionally followed by a binary exponent.  A  binary  exponent
           consists of a 'P' or 'p', followed by an optional plus or minus sign, followed by a nonempty sequence
           of decimal digits, and indicates multiplication by a power of 2.  At least one of radix character and
           binary exponent must be present.
    
           An infinity is either "INF" or "INFINITY", disregarding case.
    
           A  NAN is "NAN" (disregarding case) optionally followed by a string, (n-char-sequence), where n-char-
           sequence specifies in an implementation-dependent way the type of NAN (see NOTES).
    
    RETURN VALUE
           These functions return the converted value, if any.
    
           If endptr is not NULL, a pointer to the character after the last character used in the conversion  is
           stored in the location referenced by endptr.
    
           If  no conversion is performed, zero is returned and the value of nptr is stored in the location ref‐
           erenced by endptr.
    
           If the correct value would cause overflow, plus or minus HUGE_VAL (HUGE_VALF, HUGE_VALL) is  returned
           (according  to  the  sign  of  the value), and ERANGE is stored in errno.  If the correct value would
           cause underflow, zero is returned and ERANGE is stored in errno.
    
    ERRORS
           ERANGE Overflow or underflow occurred.
    
    ATTRIBUTES
           For an explanation of the terms used in this section, see attributes(7).
    
           ┌──────────────────────────────┬───────────────┬────────────────┐
           │Interface                     │ Attribute     │ Value          │
           ├──────────────────────────────┼───────────────┼────────────────┤
           │strtod(), strtof(), strtold() │ Thread safety │ MT-Safe locale │
           └──────────────────────────────┴───────────────┴────────────────┘
    CONFORMING TO
           POSIX.1-2001, POSIX.1-2008, C99.
    
           strtod() was also described in C89.
    
    NOTES
           Since 0 can legitimately be returned on both success and failure,  the  calling  program  should  set
           errno  to  0 before the call, and then determine if an error occurred by checking whether errno has a
           nonzero value after the call.
    
           In the glibc implementation, the n-char-sequence that optionally follows "NAN" is interpreted  as  an
           integer  number  (with an optional '0' or '0x' prefix to select base 8 or 16) that is to be placed in
           the mantissa component of the returned value.
    
    EXAMPLE
           See the example on the strtol(3) manual page; the use of the functions described in this manual  page
           is similar.
    
    SEE ALSO
           atof(3), atoi(3), atol(3), nan(3), nanf(3), nanl(3), strtol(3), strtoul(3)
    
    COLOPHON
           This  page  is  part  of  release 4.04 of the Linux man-pages project.  A description of the project,
           information  about  reporting  bugs,  and  the  latest  version  of  this  page,  can  be  found   at
           http://www.kernel.org/doc/man-pages/.
    
    Linux                                            2015-08-08                                        STRTOD(3)
    
    

     

    展开全文
  • strtod函数

    2011-11-27 20:59:15
    strtod函数
  • C语言strtod函数DEMO

    千次阅读 2016-11-12 22:53:15
    strtod函数

    参考文献

    #include<stdlib.h>
    #include<stdio.h>
    void main()
    {
        char *endptr;
        char* ptr;
        char a[] = "a12345.6789";
        char b[] = "1234.567qwer";
        char c[] = "-232.23e4";
        printf( "a=%lf\n", strtod(a, &ptr) );
        if (a==ptr)
        {
            printf("a and ptr is equality\n");
            /* 只有当带转换字符串第一个字符是非数字字符时候,a ptr 两个指针才相等; */
        }else{
             printf("a and ptr is not equality\n");
        }
        printf( "b=%lf\n", strtod(b,&endptr) );
        //因为b字符串后面有非数字字符 ,endptr指针指向q字符,也只是转换到p,
        if (b==endptr)
        {
            printf("b and endptr is equality\n");
            /* code */
        }else{
             printf("b and endptr is not equality\n");
        }
        printf( "endptr=%s\n", endptr );
        printf( "c=%lf\n", strtod(c,NULL) );
        /* fprintf(stderr, "%s:%d: expect: " format " actual: " format "\n", __FILE__, __LINE__, expect, actual);\*/
        fprintf(stdout, "fprintf first:  %s\t""second:  %s\n", a,b);/*  C fprintf函数format字符串可以用两个双引号构成*/
        /*printf(stdout, "printf first%s\t""printf second %s\n",c,a );   no way  buxing*/
    }

    输出:
    这里写图片描述

    展开全文
  • 函数原型:#include double strtod(const char *nptr, char **endptr);C语言及C++中的重要函数。名称含义strtod(将字符串转换成浮点数)相关函数atoi,atol,strtod,strtol,strtoul函数说明strtod()会扫描参数nptr...

    函数原型:

    #include

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

    C语言及C++中的重要函数。

    名称含义

    strtod(将字符串转换成浮点数)

    相关函数

    atoi,atol,strtod,strtol,strtoul

    函数说明

    strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。

    若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr传回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分。如123.456或123e-2。

    返回值

    返回转换后的浮点型数。

    附加说明

    参考atof()!范例 :

    #include

    #include

    void main()

    {

    char *endptr;

    char a[] = "12345.6789";

    char b[] = "1234.567qwer";

    char c[] = "-232.23e4";

    printf( "a=%lf\n", strtod(a,NULL) );

    printf( "b=%lf\n", strtod(b,&endptr) );

    printf( "endptr=%s\n", endptr );

    printf( "c=%lf\n", strtod(c,NULL) );

    }

    执行结果:

    a=12345.678900

    b=1234.567000

    endptr=qwer

    c=-2322300.000000

    补充说明:

    附类同的atof函数,atof函数是需要确定a是数字类型的字符串;

    ------------------------

    atof

    1. 函数名: atof

    功 能: 把字符串转换成浮点数

    名字来源:ascii to floating point numbers 的缩写

    用 法: double atof(const char *nptr);

    中文名

    atof()

    外文名

    ascii to floating point numbers

    释    义

    . 函数名

    功 能

    把字符串转换成浮点数

    程序举例

    2440829fe79a

    基本介绍

    2.atof(将字串转换成浮点型数)

    相关函数atoi,atoi,strtod,strtol,strtoul

    表头文件 #include

    定义函数 double atof(const char *nptr);

    函数说明 atof()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,而再遇到非数字或字符串结束时('\0')才结束转换,并将结果返回。参数nptr字符串可包含正负号、小数点或E(e)来表示指数部分,如123.456或123e-2。

    返回值 返回转换后的浮点型数。

    附加说明 atof()与使用strtod(nptr,(char**)NULL)结果相同。

    范例 /* 将字符串a 与字符串b转换成数字后相加*/

    2440829fe79a

    执行C=-98.23

    ==================================

    “我是一名从事了10年开发的老程序员,最近我花了一些时间整理关于C语言、C++,自己有做的材料的整合,一个完整的学习C语言、C++的路线,学习材料和工具。全球最大的C/C++、编程爱好者的聚集地就在我这里!欢迎初学和进阶中的小伙伴。希望你也能凭自己的努力,成为下一个优秀的程序员。工作需要、感兴趣、为了入行、转行需要学习C/C++的伙伴可以跟我一起学习!”

    最后分享一张C/C++学习路线图给爱学习的小伙伴们

    2440829fe79a

    展开全文
  • 关于strtod

    2014-05-14 13:56:58
    字符串转double double strtod(const char *nptr, char **endptr); char* p; number_ = strtod(&buf_[curPos_], &p);

    先看个简单例子:

    #include <iostream>
    using namespace std;


    void change(char *s)
    {

    s++;//错误 并没有办法改变它的地址!!
    }

    int main()
    {
    char d[] = "dsaggd";
    char *s = d;
    change(s);
    cout<<*s<<endl;
    }

    所以正确的想要改变s的地址的做法是采用指针的指针

    #include <iostream>
    using namespace std;


    void change(char **s)
    {

    (*s)++;//正确,正确的修改了地址值
    }

    int main()
    {
    char d[] = "dsaggd";
    char *s = d;
    change(&s);
    cout<<*s<<endl;
    }

    在函数change()中*s实际上是指向实参s地址的内容,而s又是存放字符串的地址,所以能做出相应的改变。


    字符串转double

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

    number_ = strtod(&buf_[curPos_], &p);


    有个疑问,为什么用指针的指针?

    因为指针传递本质上也是值传递,需要改变的是指针本身,而不是指针所指向的内容,所以用到指针的指针!




    展开全文
  • strtod在头文件中定义​​float strtof(const char * restrict str,char ** restrict str_end);​(自C99以来)double strtod(const char * str,char ** str_end);​(直到C99)double strtod(const char * restrict ...
  • atoi,atol,strtod,strtol,strtoul实现类型转换.doc
  • C 库函数 - strtod()描述C 库函数 double strtod(const char *str, char **endptr) 把参数 str 所指向的字符串转换为一个浮点数(类型为 double 型)。如果 endptr 不为空,则指向转换中最后一个字符后的字符的指针会...
  • strtod()

    2014-09-07 15:49:17
    strtod double strtod (const char* str, char** endptr); Convert string to double Parses the C-string str interpreting its content as a floating point number (according to the current
  • 使用strtod将字符串转换为double,转换“1650”结果为650,转换“1110”结果为0是什么原因,求高手指导!!!</p>
  • strtod()函数

    2016-09-21 10:28:31
    strtod() 含义:将字符串转换成浮点数 头文件:#include 定义函数:double strtod(const char *nptr, char **endptr); 函数说明: strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或者正负...
  • C语言中strtod与strtol的区别

    千次阅读 2018-11-30 15:25:30
    strtod与strtol都是C/C++中常用的将字符数组转换成数组型常用的函数,但是它们也有一定的区别(C++真是让人又爱又恨)。 strtod用法 定义:double strtod (const char* nptr, char** endptr); 参数:nptr为待转换的...
  • strtod()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,到出现非数字或字符串结束时('\0')才结束转换,并将结果返回。若endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符...
  • atof&strtod

    千次阅读 2013-02-22 11:13:18
    strtod要强大一些,因为如果字符串不仅包含前缀数字还包含其它字符,strtod将把前缀数字转换完成后,其余的字符串传递给一个字符串指针 char *endp; strtod(str,&endp); 如果这样用 char **endp; strdot(str...
  • <div><p>facil.io protects the JSON parser and Strings from overflowing during a call to <code>strtod</code>... however, it still appears that <code>strtod</code> calls <code>strlen</code> internally ...
  • 如题,最近在用java写解析器,想知道把string转化为double的strtod怎么工作的。</p>
  • strtod函数的使用

    千次阅读 2016-02-24 10:52:05
    strtod()函数的作用,重点测试了下endptr指针指向位置的变化,以及应用。
  • c语言strtod()函数详解

    千次阅读 2018-06-08 19:40:36
    网上有很多关于strtod()函数的文章,不过大部分都是用strtod()函数转换一个字符 char *str = "111.11"; char *target; double ret; ret = strtod(str, &amp;target); 很少有转换字符串的这样的用法 ...
  • double strtod(const char *nptr, char **endptr); C语言及C++中的重要函数。 名称含义  strtod(将字符串转换成浮点数) 相关函数  atoi,atol,strtod,strtol,strtoul    函数说明  strtod()会扫描参数nptr...
  • 使用strtod对接收到的std::vector<char> str(100, 0);进行分割时出现了以下错误: 首先右击我们创建的工程 ,找到属性 再在C/C++中找到预处理器,在预处理器定义中添加_CRT_SECURE_NO_WARNINGS即可。 ...
  • char字符串转double浮点函数——strtod

    万次阅读 2017-06-06 11:00:50
    char字符串转double浮点函数——strtod
  • strtod  编辑 C语言及C++中的重要函数。 外文名 strtod 名称含义 strtod(将字符串转换成浮点数) 相关函数 atoi,atol,strtod,strtol 表头文件 #include 目录 1...
  • c++ strtod()函数的用法

    2017-02-21 17:48:00
    c语言strtod()函数的用法 函数原型: #include <stdlib.h> double strtod(const char *nptr, char **endptr); C语言及C++中的重要函数。  名称含义 strtod(将字符串转换成浮点数) 相关函数...
  • 函数原型: #include <stdlib.h> double strtod(const char *nptr... 名称含义 strtod(将字符串转换成浮点数) 相关函数 atoi,atol,strtod,strtol,strtoul 函数说明 strtod()会扫描参数nptr字符串...
  • 函数原型: #include <stdlib.h> double strtod(const char *nptr... 名称含义 strtod(将字符串转换成浮点数) 相关函数 atoi,atol,strtod,strtol,strtoul 函数说明 strtod()会扫描参数nptr字符串...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,254
精华内容 2,101
关键字:

strtod