c++ 实现atoi()函数
来源:互联网 发布:淘宝上搜索什么有福利 编辑:程序博客网 时间:2024/06/02 19:37
1. 问题描述
实现c++函数库中atoi()函数,要考虑到各种特殊情况:
- 空字符串。
- +和-号。
- 字符串前中后n个空格。
- 溢出。
- 非数字字符。
2. 解决方案
转换过程并不复杂,复杂的是要考虑到众多特殊情况。
int myAtoi(string str) { if(str.length() == 0) return 0; //空串 bool isNeg = false; long re = 0; int i=0,cnt; for(;i<str.length(); i++) if(str[i] != ' ') break; //跳过字符串前所有的空格 if(str[i] == '-') //判断正负 isNeg = true; else if (str[i] == '+') isNeg = false; else if(str[i] >= '0' && str[i] <= '9') re = str[i] - '0',cnt=1; //记录数字的位数 else return 0; i++; for(; i < str.length(); i++) { if (cnt > 10) break; //大于整数所表示的最大位数,跳出循环 if(str[i] < '0' || str[i] > '9') break; re = re*10 + (str[i] - '0'),cnt++; } //溢出判断 if(re > INT_MAX && !isNeg) return INT_MAX; else if(isNeg &&re*(-1) < INT_MIN) return INT_MIN; return isNeg?re*(-1):re; }
0 0
- C++ atoi 函数实现
- C语言实现atoi函数
- C/C++ 实现 atoi 函数
- Atoi函数C语言实现
- atoi函数的C实现
- C实现atoi()函数和itoa()函数
- 如何自实现atoi函数(C/C++)
- C函数atoi,itoa的实现代码
- C语言atoi函数的实现
- C语言实现atoi和atof函数
- c函数itoa和atoi实现
- c函数itoa和atoi实现
- 【练习题】【C】atoi函数的代码实现
- 编程实现C函数 atoi atof
- C 标准库 atoi 函数的实现
- c函数itoa和atoi实现
- C语言中的atoi函数的实现
- C语言 atoi 函数的实现
- Java集合类详解
- SQL小结(三)
- Intent组件
- JDK与adb/android环境变量配置完整教程
- 在线接收短信和电话验证平台 收集
- c++ 实现atoi()函数
- 指针的问题3 指针的强制类型转换
- 【独立开发者er Cocos2d-x实战 009】Cocos2dx 菜单项CCMenu使用
- HDU 1412 {A} + {B} set练习
- C++小项目-本校科协管理系统
- 传说中的13个规范
- [Mac 基础知识]:Time Machine 备份 Mac
- android按两次返回键退出程序
- 对volatile的理解