【C语言】编写函数实现库函数atoi,把字符串转换成整形(考虑数字过大)
来源:互联网 发布:淘宝网皇冠店铺转让 编辑:程序博客网 时间:2024/06/05 03:49
//编写函数实现库函数atoi,把字符串转换成整形#include <stdio.h>#include <string.h>#include <assert.h>#include <ctype.h>long long calculate(const char *src, int flag){long long num = 0;while (*src ){if ((*src >= '0') && (*src <= '9'))//判断输⼊入是否为⾮非数组字符{num = num * 10 + (*src - '0');if ((flag == 1 && num>0x7fffffff) ||(flag == -1 && num < (signed int)0x80000000))//考虑数字太⼤大{num = 0;break;}src++;}else{num = 0;break;}}return flag * num;}long long str_to_int(const char *str){long long num = 0;if (str != NULL && *str != '\0'){while (isspace(*str)){str++;}int flag = 1;if (*str == '+')str++;else if (*str == '-'){str++;flag = -1;}if (*str != '\0'){num = calculate(str, flag);}}return num;}int main(){printf("%lld\n", str_to_int(" +2345"));printf("%lld\n", str_to_int(" -2345"));printf("%lld\n", str_to_int("+2345"));printf("%lld\n", str_to_int("-2345"));printf("%lld\n", str_to_int("2345"));printf("%lld\n", str_to_int("-111111111"));printf("%lld\n", str_to_int(""));printf("%lld\n", str_to_int("123ab"));return 0;}
0 0
- 【C语言】编写函数实现库函数atoi,把字符串转换成整形(考虑数字过大)
- 【C语言】编写函数实现库函数atoi,把字符串转换成整形
- 库函数atoi的C语言实现---------将字符串的数字符转换成整型的数字
- c语言:模拟实现库函数的atoi函数,将字符串转换成整数
- C语言库函数名: atoi 功 能: 把字符串转换成整型数。
- C语言库函数名: atoi 功 能: 把字符串转换成整型数。
- C/C++语言库函数atoi字符串转换成整型数
- 不考虑溢出,写一个函数把一个字符串转换成整数(atoi)。
- 编写一个函数实现atoi()函数,即把字符串数字转变为数字
- c语言库函数 atoi(将字符串转换成整型数)
- atoi 把字符串转换成相应的整形数
- 把字符串转换成整型数的库函数atoi
- 用c语言实现 编写一个函数,将一个数字字符串转换成这个字符串对应的数字(包括正浮点数、负浮点数)
- 库函数atoi c语言实现
- C语言自己实现的 整形转换成字符串函数itoa(int Number,char* Str)
- C语言数字与字符串转换 atoi()函数、itoa()函数、sprintf()函数
- C语言atoi()函数:将字符串转换成int(整数)
- C语言atoi()函数:将字符串转换成int(整数)
- 认识UART接口
- lecture R数据可视化
- poj 2955 Brackets dp简单题
- ant 编译 错误: 编码UTF8的不可映射字符
- fgets()函数和sscanf()函数的用法
- 【C语言】编写函数实现库函数atoi,把字符串转换成整形(考虑数字过大)
- oracle 中用pl/sql编辑记录里面的值 for update
- ArrayList和LinkedList的区别
- Alice's Game - HDU 3544 博弈
- linux中mkdir创建目录命令使用说明
- jsoncpp的读写操作
- 【C语言】编写函数实现库函数atof
- Git 命令参考中文整理
- Python浅析之类的写法