atof(将字符串转换成浮点型数)
atoi(将字符串转换成整型数)
atol(将字符串转换成长整型数)
strtod(将字符串转换成浮点数)
strtol(将字符串转换成长整型数)
strtoul(将字符串转换成无符号长整型数)
toascii(将整型数转换成合法的ASCII 码字符)
toupper(将小写字母转换成大写字母)
tolower(将大写字母转换成小写字母)

  1. int atoi(const char *nptr)
  2. {
  3. int c; /* current char */
  4. int total; /* current total */
  5. int sign; /* if '-', then negative, otherwise positive */
  6.  
  7. /* skip whitespace */
  8. while ( isspace((int)(unsigned char)*nptr) )
  9. ++nptr;
  10.  
  11. c = (int)(unsigned char)*nptr++;
  12. sign = c; /* save sign indication */
  13. if (c == '-' || c == '+')
  14. c = (int)(unsigned char)*nptr++; /* skip sign */
  15.  
  16. total = ;
  17.  
  18. while (isdigit(c)) {
  19. total = * total + (c - ''); /* accumulate digit */
  20. c = (int)(unsigned char)*nptr++; /* get next char */
  21. }
  22.  
  23. if (sign == '-')
  24. return -total;
  25. else
  26. return total; /* return result, negated if necessary */
  27. }

atoi函数源码

  1. double atof(char s[]) //将字符串s转换成double型的浮点数
  2. {
  3.  
  4. int i;
  5. int sign;
  6. int flag;
  7. int expn;
  8. double val;
  9. double power;
  10.  
  11. sign = ;
  12. flag = ;
  13. power = 1.0;
  14. expn = ;
  15. for(i = ; isspace(s[i]); ++i)
  16. ;
  17. if(s[i] == '-')
  18. sign = -;
  19. if(s[i] == '+' || s[i] == '-')
  20. ++i;
  21. for(val = 0.0; isdigit(s[i]); ++i)
  22. val = val * 10.0 + (s[i] - '');
  23. if(s[i] == '.')
  24. ++i;
  25. for(; isdigit(s[i]); ++i)
  26. {
  27. val = val * 10.0 + (s[i] - '');
  28. //power = power * 10.0;
  29. ++flag;
  30. }
  31. if(s[i] == 'e' || s[i] == 'E') //如果写成s[i++] == 'e' || s[i++] == 'E',if(s[i] == '-')
  32. //则当输入的字符串带有E时,不能正确得到结果,这是因为在一
  33. //个语句中使用两次自增操作,引起歧义
  34. if(s[++i] == '-')
  35. {
  36. ++i;
  37. for(; isdigit(s[i]); ++i)
  38. expn = expn * + (s[i] - '');
  39. expn = expn + flag;
  40. power = pow(, expn);
  41. return sign * val / power;
  42. }
  43. else
  44. {
  45. for(; isdigit(s[i]); ++i)
  46. expn = expn * + (s[i] - '');
  47. expn = expn - flag;
  48. power = pow(, expn);
  49. return sign * val * power;
  50. }
  51.  
  52. power = pow(, flag);
  53. return sign * val / power;
  54.  
  55. }

atof函数代码

C库函数——字符串转数字整理的更多相关文章

  1. 剑指Offer面试题:35.将字符串转换为数字

    一.题目:将字符串转换为数字 题目:写一个函数StrToInt,实现把字符串转换成整数这个功能.当然,不能使用atoi或者其他类似的库函数. 二.代码实现 (1)考虑输入的字符串是否是NULL.空字符 ...

  2. C语言字符串与数字相互转换

    在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串.字符串是以“\0”作为结束符.C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数. ● 字符串输出函数puts. ● ...

  3. Python内置的字符串处理函数整理

    Python内置的字符串处理函数整理 作者: 字体:[增加 减小] 类型:转载 时间:2013-01-29我要评论 Python内置的字符串处理函数整理,收集常用的Python 内置的各种字符串处理 ...

  4. C语言中将字符串转换为数字的方法

    C语言提供了几个标准库函数,可以将字符串转换为任意类型(整型.长整型.浮点型等)的数字.以下是用atoi()函数将字符串转换为整数的一个例子: # include <stdio. h># ...

  5. javascript中字符串常用操作整理

    javascript中字符串常用操作整理 字符串的操作在js中非常频繁,也非常重要.以往看完书之后都能记得非常清楚,但稍微隔一段时间不用,便会忘得差不多,记性不好是硬伤啊...今天就对字符串的一些常用 ...

  6. 【转】C语言字符串与数字相互转换

    在C/C++语言中没有专门的字符串变量,通常用字符数组来存放字符串.字符串是以“\0”作为结束符.C/C++提供了丰富的字符串处理函数,下面列出了几个最常用的函数. ● 字符串输出函数puts. ● ...

  7. C.【转】C语言字符串与数字相互转换

    1.gcvt 把浮点数转成字符串 - CSDN博客.html(https://blog.csdn.net/dxuehui/article/details/52791412) 1.1. 函数名: gcv ...

  8. C/C++中字符串与数字转换

    本文总结了四种字符串和数字相互转换的方法,方法一和方法二是c++中的方法,方法三和方法四是C语言库函数的方法. 方法一:c++11中string中添加了下面这些方法帮助完成字符串和数字的相互转换 st ...

  9. 数字(int)转字符串和字符串转数字(int)

    室友去面试,问了一个字符串转成数字的算法题,室友没搞出来,我心想,这个不是很简单的吗?于是动手在纸上画了画代码.画完后,总感觉哪里不对,最后一个个挖掘,才发现,尼玛,这到处都是坑啊---特此记录一下中 ...

随机推荐

  1. vue-cli2.x版本安装vue-cli建项目

    全局安装vue-cli 命令行输入: vue-cli版本在3以下 npm install --global vue-cli 安装vue-cli后,可以查看一下是否安装成功vue --version, ...

  2. Canal——原理架构及应用场景

    Canal简介 Canal是阿里开源的一款基于Mysql数据库binlog的增量订阅和消费组件,通过它可以订阅数据库的binlog日志,然后进行一些数据消费,如数据镜像.数据异构.数据索引.缓存更新等 ...

  3. jquery中对地址中的中文进行encodeURI编码

    传递参数:<script type="text/javascript">     var id= 'abc';  //字符串英文     var num = 998;  ...

  4. eclipse 建立Maven java工程

    1.在项目资源管理器右键---新建---项目 2.在选择向导里选择Maven---Maven Project 3.选择默认的工作空间,下一步 4.选择箭头所示选项 5.输入组织名和工程名.点击完成

  5. Opencv 简单视频播放器

    // C++ header and namespace #include <iostream> #include <string> #include <cstdlib&g ...

  6. Linux用户管理重要初始化目录skel案例讲解

    1.  /etc/skel 目录 /etc/skel 的场景作用

  7. Oracle- 数据库知识回顾

    数据库知识回顾: sql语句的语法规范: sql语句不区分大小写,习惯上系统的保留字.关键字.函数名称大写,表名和列名小写 使用空格和换行分隔单词效果一样,一般情况下独立的整句不换行,不同的子句需要换 ...

  8. Oracle - WITH AS -用于查询当月与上月数据

    注:在之前工作的时候,数据需要根据时间查询出当月值和上月的值. 语法: WITH A AS( SELECT * FROM TABLE ), B AS (SELECT * FROM TABLE)SELE ...

  9. Android的视图(View)组件

    Android的绝大部分UI组件都放在android.widget包及其子包.android,view包及其子包中,Android应用的所有UI组件都继承了View类,View组件非常类似于Swing ...

  10. ApplicationListener原理分析

    在 Nacos配置服务原理 文中结束时提到过通过发布 ApplicationListener 刷新事件完成 Context 中属性值的更新.那么本章我们一起分析 ApplicationListener ...