模拟实现atoi函数
来源:互联网 发布:贪心算法的实例 编辑:程序博客网 时间:2024/05/22 18:35
函数功能:
atoi (表示 ascii to integer)是把字符串转换成整型数的一个函数,应用在计算机程序和办公软件中。atoi( ) 函数会扫描参数 ptr字符串,跳过前面的空白字符(例如空格,tab缩进等)。
可以通过isspace( )函数来检测),直到遇上数字或正负符号才开始做转换,而在遇到非数字或字符串结束时(‘\0’)才结束转换,并将结果返回(返回转换后的整数值);
模拟实现:
//模拟实现atoienum //有效数字和无效数字的区分{ INVALUE=0, VALUE};int num = INVALUE;int my_atoi(char *buff){ int flag = 1; //正负号 1为正数 -1为负数 assert(buff); //断言 long long ret = 0; //因为有可能溢出,需要用long long来判断溢出 if (*buff == '\0') //判断是否位空字符串 { return 0; } //if (buff == NULL) //判断空指针 //{ // return; //} while (isspace(*buff)) //跳过空格 { buff++; } if (*buff == '-') //判断正负号 { buff++; flag = -1; } while (isdigit(*buff)) //isdigit:判断字符是否为0~9的十进制数 { ret = ret * 10 + flag*(*buff - '0'); //赋值 buff++; if ((ret > INT32_MAX) || (ret < INT32_MIN)) //溢出 { num = INVALUE; } else { num = VALUE; //没有溢出 改为有效 } } return int(ret);}int main(){ char buf[] = "12345"; int tmp = my_atoi("12@#$345"); if (num == 1) { printf("VALUE: %d\n", tmp); } else if (num == 0) { printf("INVALUE: %d\n", tmp); } system("pause"); return 0;}
测试结果为12;
阅读全文
0 0
- 模拟实现atoi函数
- 模拟实现atoi函数
- 模拟实现atoi函数
- 模拟实现atoi函数
- 模拟实现atoi函数
- 模拟实现atoi函数
- 模拟实现atoi函数
- 模拟实现atoi函数
- 模拟实现atoi函数
- C语言模拟实现atoi函数
- C语言模拟实现atoi函数
- 模拟实现atoi和itoa函数
- 模拟实现库函数atoi
- atoi的模拟实现
- 模拟实现atoi
- 模拟实现atoi、itoa
- 【c语言】 模拟实现库函数的atoi函数
- 【面试题】剑指Offer-49-模拟实现atoi()函数
- 向左还是向右?Unity中俯视视角下人物智能转向的控制方法
- jquery之data()、stop()、delay()的语法和使用
- LVS系列—负载均衡之工作原理说明(TUN模式)
- 正则表达式
- 如何成为一名全栈开发人员----转载
- 模拟实现atoi函数
- Angular来源
- 在Java中实现数组的简单操作
- spring主要知识
- 在JS中写form表单的提交与判断
- 黑马题库(1)
- 正则表达式二、
- JUnit使用
- codeforces D. Misha, Grisha and Underground(LCA)