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

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

#include<stdlib.h>

#include<stdio.h>

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

strtol函数

 参数base范围从2至36,或0。参数base代表采用的进制方式,如base值为10则采用10进制,若base值为16则采用16进制等。当base值为0时则是采用10进制做转换,但遇到如’0x’前置字符则会使用16进制做转换、遇到’0’前置字符而不是’0x’的时候会使用8进制做转换。
一开始strtol()会扫描参数nptr字符串,跳过前面的空格字符,直到遇上数字或正负符号才开始做转换,再遇到非数字或字符串结束时('\0')结束转换,并将结果返回。若参数endptr不为NULL,则会将遇到不合条件而终止的nptr中的字符指针由endptr返回;若参数endptr为NULL,则会不返回非法字符串。
#include<stdlib.h>

#include<stdio.h>

voidmain(void)

{

char*string,*stopstring;

doublex;

intbase;

longl;

unsignedlongul;

string="3.1415926Thisstoppedit";

x=strtod(string,&stopstring);

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

printf("strtod=%f\n",x);

printf("Stoppedscanat:%s\n",stopstring);

string="-10110134932Thisstoppedit";

l=strtol(string,&stopstring,10);

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

printf("strtol=%ld\n",l);

printf("Stoppedscanat:%s\n",stopstring);

string="10110134932";

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

/*Convertstringusingbase2,4,and8:*/

for(base=2;base<=8;base*=2)

{

/*Convertthestring:*/

ul=strtoul(string,&stopstring,base);

printf("strtol=%ld(base%d)\n",ul,base);

printf("Stoppedscanat:%s\n",stopstring);

}

}
string=3.1415926Thisstoppedit

strtod=3.141593

Stoppedscanat:Thisstoppedit

string=-10110134932Thisstoppedit

strtol=-2147483648

Stoppedscanat:Thisstoppedit

string=10110134932

strtol=45(base2)

Stoppedscanat:34932

strtol=4423(base4)

Stoppedscanat:4932

strtol=2134108(base8)

Stoppedscanat:932




strtod-strtod, 字符串 转 数字 函数的更多相关文章

  1. 2-2 Sass的函数功能-字符串与数字函数

    Sass的函数简介 在 Sass 中除了可以定义变量,具有 @extend.%placeholder 和 mixins 等特性之外,还自备了一系列的函数功能.其主要包括: 字符串函数 数字函数 列表函 ...

  2. 高精度运算专题-输出函数与字符串转数字函数(Output function and the string to number function)

    输出函数:这个函数别看它小,但浓缩的都是精华啊 作用:对于高精度的数组进行倒序输出 思路:首先从被传入的数组第一位开始,一直往前扫输出就可以了(i--) 注释:因为每个数组的第一位是用来存储这个数组的 ...

  3. JS 字符串 时间 数字函数操作 事件

    字符串  操作 var s="abcdefg" s.tolowerCase()   转小写 s.toupperCase()   转大写 s.substring(2,5)   索引下 ...

  4. C语言--字符串和数字的相互转换

    1.数字转换为字符串 sprintf 跟printf 在用法上几乎一样,只是打印的目的地不同而已,前者打印到字符串中,后者则直接在命令行上输出. sprintf 是个变参函数,定义如下: int sp ...

  5. c语言中字符串转数字的函数

    ANSI C 规范定义了 atof().atoi().atol().strtod().strtol().strtoul() 共6个可以将字符串转换为数字的函数,大家可以对比学习.另外在 C99 / C ...

  6. SQL SERVER 将表中字符串转换为数字的函数 (详询请加qq:2085920154)

    在SQL SERVER 2005中,将表中字符串转换为数字的函数共2个:1. convert(int,字段名)   例如:select convert(int,'3')2. cast(字段名 as i ...

  7. 5.单行函数,多行函数,字符函数,数字函数,日期函数,数据类型转换,数字和字符串转换,通用函数(case和decode)

     1  多行函数(理解:有多个输入,但仅仅输出1个结果) SQL>select count(*) from emp; COUNT(*) ------------- 14 B 字符函数Lowe ...

  8. Python不使用int()函数把字符串转换为数字

    Python不使用int()函数把字符串转换为数字 2018年05月21日 14:18:45 边缘ob边缘ob 阅读数:1035 https://blog.csdn.net/qq_33192555/a ...

  9. js数组,数字函数,字符串函数,表单验证,hashMap,堆栈,日期函数,call函数

    1.javascript的数组API Js代码 收藏代码 //定义数组 var pageIds = new Array(); pageIds.push('A'); 数组长度 pageIds.lengt ...

随机推荐

  1. redhat6 改 centos yum 源

    **redhat的yum在线更新是收费的,如果没有注册的话不能使用,如果要使用,需将redhat的yum卸载后,重启安装其他yum源,再配置其他源.** 本文包括配置本地源及第三方源.第三方源包括:网 ...

  2. P3309 [SDOI2014]向量集

    传送门 达成成就:一人独霸三页提交 自己写的莫名其妙MLE死都不知道怎么回事,照着题解打一直RE一个点最后发现竟然是凸包上一个点求错了--四个半小时就一直用来调代码了-- 那么我们只要维护好这个凸壳, ...

  3. [Swift通天遁地]四、网络和线程-(3)线程组:使用DispatchGroup(调度组)对线程进行分组管理

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  4. python3+request接口自动化框架

    首次书写博客,记录下写的自动化接口框架,框架比较简单,哈哈哈,算是记录下历程把!~~~ 一.本次框架由python3.6 书写 1.准备代码环境,下载python3.6    下载地址:https:/ ...

  5. 查询分析器执行SQL很快但是ado.net很慢:请为你的SQLparameter设置DbType

    我们都知道,参数化查询可以处理SQL注入,以及提高查询的效率,因为参数化查询会使MSSQL缓存查询的计划. 但是会出现一个问题:有的时候参数化查询比直接拼接sql字符串效率低好多,甚至是查询超时. 原 ...

  6. 实现strcpy

    #include <stddef.h> char* strcpy(char* dest, const char* src) { if (dest == NULL || src == NUL ...

  7. Java final和static 修饰符

    一.final final是不变的,最终的意思.可以用来修饰变量,方法,类. 1. 修饰变量 private final int a = 2; private final int b; // fina ...

  8. 使用super实现类的继承

    查看一个类继承了哪些类可以用__bases__方法查看 class People:   def __init__(self,name,age,sex):  self.name=name self.ag ...

  9. 1.CentOS安装Redis

    首要条件:安装VMware,在虚拟机中安装CentOS. 第一次接触CentOS的开发者最好是在虚拟机手动一步步进行安装,并且系统环境选择开发环境,这样可以避免后期自己要安装诸多运行库. 安装步骤: ...

  10. JAVA中EXTENDS 与 IMPLEMENT 区别

    简单说: 1.extends是继承父类,只要那个类不是声明为final或者那个类定义为abstract的就能继承,2.JAVA中不支持多重继承,但是可以用接口来实现,这样就要用到implements, ...