#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. 018_SpringBoot异常处理方式-ExceptionHandle注解处理异常
  2. 列出本机安装的所有硬件设备
  3. 文本查询TextQuery类文件编写
  4. Spring Cloud实战小贴士:Zuul统一异常处理(三)【Dalston版】
  5. 第二天一早的飞鸽传书
  6. sparkstreaming 读取mysql_SparkStreaming读取Kafka的两种方式
  7. 【JAVA SE】第十六章 进程、线程、同步锁和线程锁的简介
  8. oracle传输表空间功能测试(含详细过程)
  9. Turbo码(Turbo Codes)
  10. 加速科技赋能,城商行为何都瞄准全闪存?
  11. 实现 | 朴素贝叶斯模型算法研究与实例分析
  12. Java计算标会(会子)利率
  13. lol的不只有英雄联盟,还有程序开发天团!
  14. 消费者物价指数CPI
  15. 自定义 mrtg 数据
  16. word2013总是出现未响应卡一下如何解决?
  17. 计算机音乐童话,童话故事背景音乐
  18. 长江职业学院计算机应用技术代码,长江职业学院的学院代号和各个专业的代号...
  19. 如何设置可以使计算机在10分钟没有任何操作时启动屏幕保护程序?,Win10设置屏幕保护程序,不用鼠标或键盘一定时长,禁止进入系统...
  20. 2019宣传部第三次培训——PR的基本功能及简易VLOG片头的制作

热门文章

  1. OpenGL_Qt学习笔记之_05(纹理映射)
  2. ubuntu启动时自动挂载windows分区
  3. .net c# 序列化和反序列
  4. 分组合计且排序和显示名称
  5. 为什么计算机系统安全具有整体性质,操作系统全局性质的形式化描述和验证
  6. getHibernateTemplate()与getSession()的区别
  7. C语言条件编译及编译预处理阶段
  8. JSP GridView --使用自定义标签实现ASP.NET的控件
  9. HDFS读写过程解析
  10. 腾讯面试:比特位计数