小弟最近遇到了一点小问题,来请大家帮助,
我现在有一个字符串 char str[5] = "2.132"
我现在想把它转化化double型,请大家帮助我是一下,
事先说明一个我用的str是char[]型的,不是char*,
若是char*可以有解法strtod(str,str),就可以做到了
有知道了,请大家帮个忙

解决方案 »

  1.   

    char str[5] = "2.132";
    char *pEnd;
    double d = strtod(str, &pEnd);
      

  2.   

    或者更简单的:atof。
    double d = atof(str);
      

  3.   

    1。数组传入参数本来就是作为地址值赋给指针;
    2。怎么可以用strtod(str, str)呢?第二个参数是存放结束位置的指针值的。
      

  4.   

    char str[5] = "2.13";
    double d = atof(str);
    注意:char字符串的大小,最后还应该有一个结束符
      

  5.   

    char str2[6];
    memcpy(str2,str,5);
    str2[5]='\n';
    double dValue=atod(str2);
      

  6.   

    OK了,多谢大家,用strtod可以,妈的,刚才怎么不行
      

  7.   

    其实用这个好些double d = atof(str);