atoi C++ 实现
2013-10-09 10:00
281 查看
测试用例 | 库实现 | MyAtoi | 用例备注 | |
Return | g_inputIllegal | |||
NULL | 未定义 | 0 | True | |
“” | 0 | 0 | True | |
“ \n34” | 34 | 34 | | |
“123” | 123 | 123 | | |
“-123” | -123 | -123 | | |
“+123” | 123 | 123 | | |
“+-123” | 0 | 0 | True | |
“ -123” | -123 | -123 | | |
“ 23s4” | 23 | 23 | | |
“ s34” | 0 | 0 | True | |
“111112222233333444445555566666” | 1382983754 | 1382983754 | | |
“-111112222233333444445555566666” | -1382983754 | -1382983754 | | |
“1111111111”(10个1) | 1111111111 | 1111111111 | | |
“11111111111”(11个1) | -1773790777 | -1773790777 | | |
| | | | |
| | | | |
| | | | |
#include <cstdlib> #include <iostream> using namespace std; bool g_inputIllegal = false; int myAtoi(char * str) { if(str == NULL) { g_inputIllegal = true; return 0; } else { g_inputIllegal = false; } bool isNegative = false; unsigned int res = 0; while(*str == ' ' || *str == '\t' || *str == '\n') { ++str; } if(*str == '-') { isNegative = true; ++str; } else if(*str == '+') { ++str; } char * start = str; while(*str != '\0' && *str >= '0' && *str <= '9') { res = res * 10 + (*str - '0'); if(res > INT_MAX) { g_inputIllegal = true; return 0; } ++str; } if(start == str) { g_inputIllegal = true; return 0; } if(isNegative) { res = 0 - res; } return res; } int main(int argc, char *argv[]) { char * strs[] = {NULL, "", " \n34 ", "123", "-123", "+-123", "+123", " -123", " 23s34", " s78", "111112222233333444445555566666", "-111112222233333444445555566666", "1111111111", "11111111111", "12147483647", "2147483647"}; //"4294967295"}; for(int i = 1; i < 16; i++) { cout << i << " " << strs[i] << ":\t" << atoi(strs[i]) << "\t" << myAtoi(strs[i]) << "\t" << g_inputIllegal << endl; } system("PAUSE"); return EXIT_SUCCESS; }
相关文章推荐
- c++ 实现atoi()函数
- C++实现strcpy, strlen, strstr, atoi等字符串相关API
- C++ atoi的自定义实现:异常的输入考虑
- C/C++_atoi,itoa功能及其实现原理
- C/C++ 实现 atoi 函数
- c++实现atoi()和itoa()函数(字符串和整数转化)
- C/C++自实现的函数(memset, memcpy, atoi)
- C++程序设计语言练习6.16 atoi 的实现
- C/C++ atoi、atof与itoa函数的实现
- String to Integer (atoi) C++实现
- LeetCode 08:string to int(atoi)(C++实现)
- atoi和itoa的C++实现
- atoi(c++实现)
- atoi与itoa的C++实现
- c++ 实现atoi()函数
- c++实现atoi()和itoa()函数(字符串和整数转化)
- c++实现atoi()和itoa()函数(字符串和整数转化)
- C++ Studio (二) ----- atoi()函数的实现 (自己编写功能)
- C++ 实现 atoi
- C++中atof函数的实现和atoi的实现