剑指offer中atoi()函数的实现
来源:互联网 发布:人工智能机械假肢感应 编辑:程序博客网 时间:2024/06/05 15:07
#include<stdio.h>#include<stdlib.h>#include<ctype.h>#include<assert.h>_Bool tmp_flag = 0;//判断字符串转换来的数字是否合法 0表示不合法,1表示合法int my_atoi(const char*src){ long long ret = 0; int flag = 1;//判断这个字符串转为的数字的正负性。1表示整数,-1表示复数 assert(src != NULL);//断言src是否为空指针 while (isspace(*src))//跳过前面的空格 { src++; } if (*src == '-' || *src == '+') { if (*src == '-') flag = -1; src++;//判断完之后一定要向后偏移一个字节。 } while ((*src) && isdigit(*src))//判断字符是不是数字字符 { tmp_flag = 1;//如果是数字字符,把tmp_flag赋值为真 if (INT_MAX<ret || INT_MIN>ret)//如果转化的结果大于整型最大值或小于整型最新值,就不在往后继续判断,跳出循环 { break; } ret = ret * 10 + flag*(*src - '0');//把字符串数字转化为整型 src++;//计算完之后,向后偏移一个字节 } if (*src)//判断字符串是是否还有非数字字符 { tmp_flag = 0;//如果还有非数字字符,把tem_flag赋值为假。 } return (int)ret;}int main(){ printf("请输入数字字符串:"); char pc[20] = { 0 }; scanf("%s", pc); int ret = my_atoi(pc); printf("%d\n", atoi(pc)); if (tmp_flag)//当字符串为合法字符串时,则输出转化后的结果。 printf("%d\n", ret); system("pause"); return 0;}
阅读全文
1 0
- 剑指offer中atoi()函数的实现
- atoi函数的大概实现【剑指offer】
- 【面试题】剑指Offer-49-模拟实现atoi()函数
- 剑指offer面试题49atoi函数的编写
- atoi函数的实现
- atoi()函数的实现
- atoi()函数的实现
- atoi函数的实现
- atoi函数的实现
- atoi函数的实现
- atoi函数的实现
- atoi函数的实现
- atoi函数的实现
- atoi()函数的实现
- atoi()函数的实现
- atoi()函数的实现
- atoi函数的实现
- atoi()函数的实现
- 无线dBm, RSSI, mW的换算关系
- 1、编码器的简单认识
- Entity Framework Code Firs 数据迁移与更新
- hibernate5(1)新特性展示
- LAMP搭建——apache安装
- 剑指offer中atoi()函数的实现
- J2EE进阶之onsubmit表单提交 五
- 牛x的大甲方信息系统为啥对自动化巡检情有独钟
- 最常用的15大Eclipse开发快捷键技巧
- Warning:The `android.dexOptions.incremental` property is deprecated and it has no effect on the buil
- 内外网双网卡配置
- Linux下的C语言函数perror
- Git的使用(一些常用命令)
- 171. Excel Sheet Column Number/168. Excel Sheet Column Title(Java/C++)