自己动手写C语言库函数(6) atoi
2015-06-04 14:50
393 查看
int atoi(const char* str) { int num = 0; int sign = 1; const int len = strlen(str); int i = 0; while (str[i] == ' ' && i < len) i++; if (str[i] == '+') i++; if (str[i] == '-') { sign = -1; i++; } for (; i < len; i++) { if (str[i] < '0' || str[i] > '9') break; if (num > INT_MAX / 10 || (num == INT_MAX / 10 && (str[i] - '0') > INT_MAX % 10)) { return sign == -1 ? INT_MIN : INT_MAX; } num = num * 10 + str[i] - '0'; } return num * sign; }
相关文章推荐
- 【Decode Ways】cpp
- C++语言体系设计哲学的一些随想
- QML和C++混合编程--QML中的全局对象
- C++/C链接过程详解
- C++_运算符重载 总结
- [C++11 并发编程] 01 - Hello World
- [cernRoot]Get graphs from TMultiGraph
- c语言中static 函数和普通函数的区别?
- 自己动手写C语言库函数(5)strcpy
- C++与Java的语法区别
- [cernRoot] Getting Contours From TH2D
- [cernRoot]How to get tree name from root file
- 002-C语言概览
- 提取VS的Win32SDk用C/C++编译器
- 新书《深入应用C++11:代码优化与工程级应用》出版,感谢支持
- C语言小结
- 升降序列
- 【算法】【C++】整值函数算法
- Effective C++ 条款42
- C++深拷贝与浅拷贝