#include <stdio.h>
#include <stdlib.h>
#define LENGTH 128int main(void){char str[LENGTH];puts("请输入字符串:");scanf("%s", str);printf("转换为int型后为 %d。\n", atoi(str));printf("转换为long型后为 %ld。\n", atol(str));printf("转换为double型后为 %lf。\n", atof(str));return 0;
}

运行结果:

使用函数库:#include <stdlib.h>

函数 原型 说明 返回值
atoi int atoi(const char *nptr) 将 nptr 指向的字符串转换为 int 型表示 返回转换后的值。结果值不能用 int 型表示时的处理未定义
atol long atol(const char *nptr) 将 nptr 指向的字符串转换为 long 型表示 返回转换后的值。结果值不能用 long型表示时的处理未定义
atof double atof(const char *nptr) 将 nptr 指向的字符串转换为 double 型表示 返回转换后的值。结果值不能用 double 型表示时的处理未定义

atoi 函数实现:

int atoi(const char *nptr){int flag = 1;int result = 0;if(nptr == NULL)return 0;while(*nptr == ' ' || *nptr == '\t')nptr++;if(*nptr == '-'){flag = -1;nptr++;}while(*nptr != '\0'){if(*nptr >= 0 && *nptr <= '9'){result = result*10 + (*nptr - '0');} else {break;}nptr++;}return result * flag;
}

atol 函数实现:

int atol(const char *nptr){int flag = 1;long result = 0;if(nptr == NULL)return 0;while(*nptr == ' ' || *nptr == '\t')nptr++;if(*nptr == '-'){flag = -1;nptr++;}while(*nptr != '\0'){if(*nptr >= 0 && *nptr <= '9'){result = result*10 + (*nptr - '0');} else {break;}nptr++;}return result * flag;
}

atof 函数实现:

#include <stdio.h>
#define LENGTH 128
typedef enum{false,true} bool;double atof(const char* nptr){double result = 0.0;double d = 10.0;int count = 0;if(nptr == NULL){return 0;}while(*nptr == ' ' || *nptr == '\t'){nptr++;}bool flag = false;while(*nptr == '-'){  flag = true;nptr++;}if(!(*nptr >= '0' && *nptr <= '9')){  return result;}      while(*nptr >= '0' && *nptr <= '9'){  result = result * 10 + (*nptr - '0');nptr++;}if(*nptr == '.'){  nptr++;}while(*nptr >= '0' && *nptr <= '9'){  result = result + (*nptr - '0') / d;d *= 10.0;nptr++;}result = result * (flag ? -1.0 : 1.0);if(*nptr == 'e' || *nptr == 'E'){  flag = (*++nptr == '-') ? true : false;if(*nptr == '+' || *nptr == '-'){nptr++;}while(*nptr >= '0' && *nptr <= '9'){count = count*10 + (*nptr - '0');nptr++;}if(flag == true) {         while(count > 0){result = result / 10;count--;}}if(flag == false){  while(count > 0){result = result * 10;count--;}}}return result;
}int main(void){char str[LENGTH];puts("请输入字符串:");scanf("%s", str);printf("转换为double型后为 %f。\n", atof(str));return 0;
}

C语言 字符串转换成int、long和double型相关推荐

  1. asp.net(c#)字符串转换成字符数组 字符串转换成int 数组

    问题: 一个字符串是string   a="a,b,c,d" ,另一个是string   b="1,2,3,4" ,第一个转换成string[]类型的,第二个转 ...

  2. JAVA将 带有空格或特殊字符的字符串转换成int数组的方法

    如果一个字符串: String str="13 34 56 78 21 78 "; 怎样将它转换为int型数组呢? 可以通过String类提供的方法,如charAt(int ind ...

  3. 把字符串转换成int整数

    题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法 ...

  4. C语言atoi()函数:将字符串转换成int(整数)和sprintf和memset

    atoi()函数 #include <stdio.h> #include <stdlib.h>int main () {int i;char buffer[256];print ...

  5. c++将字符串转换成 int 类型

    #include<bits/stdc++.h> using namespace std;int main() {string str = "1233";int temp ...

  6. C语言字母转十进制,c语言十进制转换_C语言 字符串转换成十进制整数

    最佳答案 这道题不算难,就是筛选除了a,b,c,d,e,f和数字之外的所有字符,然后把十六进制数转换为十进制数,你等我写一下程序再发上来.追答: #include #include = "0 ...

  7. python字符串转浮点数_Python字符串转换成浮点数函数分享

    Python字符串转换成浮点数函数分享 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456 from functools import red ...

  8. asp.net(c#)如何把字符串转换成数组

    数据库中记录保存格式是"a,b,c,d",现准备分别取出各值,如果直接取出做数组是不行的,必须进行转换,本文分2种情况,一种是该字符串转换成字符string[]类数组,一种是字符串 ...

  9. python字符串转化为浮点_python如何将字符串转换成浮点型

    python将字符串转换成浮点型的方法:可以利用float()函数来实现.float()函数用于将整数和字符串转换成浮点数并返回,具体使用方法如:[num1 = "123.12"; ...

最新文章

  1. 工作五年,还没转型为架构师的程序员何去何从?
  2. SAP WM 如何看一个交货单相关的TO是从哪些货架上拣配的?
  3. DPI — nDPI — 安装部署与应用示例
  4. 计算机access2级选择题真题,计算机二级《ACCESS》选择题练习及答案
  5. mysql grant 不想让用户看到 系统默认 mysql_MYSQL用户权限管理GRANT使用
  6. python做的项目管理软件_幽雅的使用Python之软件管理
  7. 一个简单的Ajax例子
  8. 确定S中最接近中位数的k个元素(算法导论第三版9.3-7)
  9. 如何为您的AWS账户设置多因素身份验证(MFA)
  10. 从职场新人到企业高管,她是怎么做到的?
  11. 苹果欲把 Swift 扶上位!
  12. 数据库技大会五周年 技术领袖共聚DTCC
  13. kprobe原理解析(一)
  14. 关闭jtag保留swd
  15. centos 5.6 x86 安装 文泉驿字体
  16. HTML label标签用法介绍
  17. 汇编软件MASM和调试工具DEBUG的使用
  18. ROS笔记——创建简单的主题发布节点和主题订阅节点
  19. MPChart饼图自定义图例
  20. js判断数据类型常用的四种方法

热门文章

  1. 针对淡入淡出的定时轮播效果js
  2. 澳洲中产收入水平[转]
  3. gnome3.2 安装体验
  4. android 在xml文件中引用自定义View
  5. document.forms用法示例介绍
  6. 用C语言编写一个Linux下的简单shell程序
  7. C#之windows桌面软件第一课:倒时器软件
  8. STM32的FSMC详解
  9. mysql一: 登陆
  10. 记录一次阿里架构师全程手写Spring MVC