标签:
1)字符串是空指针的情况。
2)假设输入的是一个空字符串“”
3)全部‘0’到‘9’之外的字符都是非法的吗?加号和减号是合法输入。
4) 考虑溢出
#include <iostream> using namespace std; bool g_value=false; int atoi(char * number){ if(number == NULL || *number=='\0'){ g_value=true; return 0; } double count=0;//此处是double型 bool min=false; if(*number=='-'){ min=true; number++; }else if('+'==*number){ min=false; number++; }else min=false; while(*(number)!='\0'){ if((*number-'0')>=0&&(*number-'0')<=9){ count = count*10 + (*number-'0'); if(false==min&&count> 0x7FFFFFFF ||true==min&&count<(signed int)0x80000000){ cout<<"发生溢出"<<endl; count=0; break; } number++; }else{ break; } } if(min) count*=-1; return (int)count; } int main(){ char * number="-11111"; cout<<atoi(number); return 0; }
标签:
原文地址:http://www.cnblogs.com/bhlsheji/p/5172836.html