#include <stdlib.h>  
double atof(const char *nptr); 
将字符串转换成双精度浮点数
int atoi(const char *nptr); 
将字符串转换成整形数
long atol(const char *nptr); 将字符串转换成长整型数
double strtod(const char *nptr, char **endptr);            
将字符串转换成双精度浮点数
long int strtol(const char *nptr, char **endptr, int base); 将字符串转换成长整型数
unsigned long int strtoul(const char *nptr, char **endptr, int base); 将字符串转换成无符号长整型数
char *gcvt(double number, int ndigit, char *buf); 将浮点数转换成字符串,取四舍五入
api介绍(学习方法)如何看懂一个api
 
double atof(const char *nptr);  将字符串转换成双精度浮点数
看函数,
首先看参数  const char *nptr,根据之前学习的基础,首先看到这是一个指针,而且有const char,代表这是一个字符串指针 .
所以要得到两点结论:
1. 传进来的参数是一个指针,字符串的指针
2. 传进来的参数是受const保护的,也就是说,在这个函数里面,它的内容将不会发生修改 .进函数前是什么样子,    函数结束后还是什么样子.
然后再看返回值 double
说明在调用这个函数的时候,我们需要声明一个变量得是double 类型的来接收这个函数反回的值.
atoi atof atol 这三个函数的参数是字符型指针常量,返回值 为 数值字符串 转化后的数值.
int atoi(const char *nptr); 
-------------------------------------------------------
int main(void) { const char *buf="365.3day";
int day;
day = atoi(buf);
printf("%d\n",day); // }
-------------------------------------------------------
double strtod(const char *nptr, char **endptr);
-------------------------------------------------------

            int main(int argc, char **argv) {
const char *buf="456.78秒";
double sec;
//因为要接收一个字符串指针,所以就定义一个字符串指针
char *p; //因为参数传递是拷贝的概念,值传递只是拷贝副本,并不影响本身,所以把参数当做修改入口的话,要取它的地址传递
//指针变量p 的地址是 &p; 跟普通变量 a 的地址 &a是一样的.
//而且p是指针,函数strtod 的形参刚好也是要求的char **p;和实参设计不谋而合 .
sec = strtod(buf,&p);
printf("sec is %0.2f\n",sec); //sec is 456.78
printf("left str is: %s\n",p); //left str is: 秒 } -------------------------------------------------------
所以这个函数的功能就是将字符串数字开头的部分通过返回值返回,然后将剩下的非数字部分的指针赋给指针*p,这样*p就指向非数字部分,可以输出.
long int strtol(const char *nptr, char **endptr, int base);             将字符串转换成长整型数:
unsigned long int strtoul(const char *nptr, char **endptr, int base);   将字符串转换成无符号长整型数:
//参数 int base是规定转换数字的进制数
int main(int argc, char **argv) { const char *buf="1234567sec"; long int sec; //用于接收返回值
char *tmp; //指向剩下字符串指针
int base = ; //10进制 sec=strtol(buf,&tmp,base); printf("sec is: %ld\n",sec); //
printf("left src is: %s\n",tmp); //left src is: sec return ;
} -------------------------------------------------------

最新文章

  1. vs2012中将图片放到resource中进行调用
  2. c_水程序
  3. September 7th 2016 Week 37th Wednesday
  4. UDP和TCP的区别(转)
  5. [问题2014A10] 解答
  6. django开发的社区和博客
  7. Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件
  8. 立体匹配:关于OpenCV读写middlebury网站的给定的视差并恢复三维场景的代码
  9. iOS 实现进度条(progress)
  10. 管道和FIFO
  11. [置顶] Android自定义控件大全
  12. (大数据工程师学习路径)第四步 SQL基础课程----SQL介绍及mysql的安装
  13. 假面舞会[NOI2008]
  14. git无法添加文件夹
  15. React修改state(非redux)中数组和对象里边的某一个属性的值
  16. 【Storm篇】--Storm基础概念
  17. c# c/s 框架读取的配置文件时是app.exe.config
  18. idea集成tomcat
  19. Django基础篇--模板和路由分发
  20. SpringMVC源码学习之request处理流程

热门文章

  1. mysql-增删改(DML)
  2. 在 CentOS 上安装 vsftp 服务
  3. 菜鸟 学注册机编写之 Android app
  4. Mvc过滤器的使用【转载】
  5. Asp.net防御XSS攻击组件库
  6. java之Socket多线程传递对象
  7. Spring Cloud入门程序——注册服务提供者
  8. .net core 操作域控 活动目录 ladp -- Support for System.DirectoryServices for Windows
  9. 在vue中同时使用过渡和动画
  10. Node.js 的初体验