C语言 字符串转换成int、long和double型
#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型相关推荐
- asp.net(c#)字符串转换成字符数组 字符串转换成int 数组
问题: 一个字符串是string a="a,b,c,d" ,另一个是string b="1,2,3,4" ,第一个转换成string[]类型的,第二个转 ...
- JAVA将 带有空格或特殊字符的字符串转换成int数组的方法
如果一个字符串: String str="13 34 56 78 21 78 "; 怎样将它转换为int型数组呢? 可以通过String类提供的方法,如charAt(int ind ...
- 把字符串转换成int整数
题目描述 将一个字符串转换成一个整数,要求不能使用字符串转换整数的库函数. 数值为0或者字符串不是一个合法的数值则返回0 输入描述: 输入一个字符串,包括数字字母符号,可以为空 输出描述: 如果是合法 ...
- C语言atoi()函数:将字符串转换成int(整数)和sprintf和memset
atoi()函数 #include <stdio.h> #include <stdlib.h>int main () {int i;char buffer[256];print ...
- c++将字符串转换成 int 类型
#include<bits/stdc++.h> using namespace std;int main() {string str = "1233";int temp ...
- C语言字母转十进制,c语言十进制转换_C语言 字符串转换成十进制整数
最佳答案 这道题不算难,就是筛选除了a,b,c,d,e,f和数字之外的所有字符,然后把十六进制数转换为十进制数,你等我写一下程序再发上来.追答: #include #include = "0 ...
- python字符串转浮点数_Python字符串转换成浮点数函数分享
Python字符串转换成浮点数函数分享 利用map和reduce编写一个str2float函数,把字符串'123.456'转换成浮点数123.456 from functools import red ...
- asp.net(c#)如何把字符串转换成数组
数据库中记录保存格式是"a,b,c,d",现准备分别取出各值,如果直接取出做数组是不行的,必须进行转换,本文分2种情况,一种是该字符串转换成字符string[]类数组,一种是字符串 ...
- python字符串转化为浮点_python如何将字符串转换成浮点型
python将字符串转换成浮点型的方法:可以利用float()函数来实现.float()函数用于将整数和字符串转换成浮点数并返回,具体使用方法如:[num1 = "123.12"; ...
最新文章
- 工作五年,还没转型为架构师的程序员何去何从?
- SAP WM 如何看一个交货单相关的TO是从哪些货架上拣配的?
- DPI — nDPI — 安装部署与应用示例
- 计算机access2级选择题真题,计算机二级《ACCESS》选择题练习及答案
- mysql grant 不想让用户看到 系统默认 mysql_MYSQL用户权限管理GRANT使用
- python做的项目管理软件_幽雅的使用Python之软件管理
- 一个简单的Ajax例子
- 确定S中最接近中位数的k个元素(算法导论第三版9.3-7)
- 如何为您的AWS账户设置多因素身份验证(MFA)
- 从职场新人到企业高管,她是怎么做到的?
- 苹果欲把 Swift 扶上位!
- 数据库技大会五周年 技术领袖共聚DTCC
- kprobe原理解析(一)
- 关闭jtag保留swd
- centos 5.6 x86 安装 文泉驿字体
- HTML label标签用法介绍
- 汇编软件MASM和调试工具DEBUG的使用
- ROS笔记——创建简单的主题发布节点和主题订阅节点
- MPChart饼图自定义图例
- js判断数据类型常用的四种方法