将字符串转化为整形数
1 int toInteger(char* str){ 2 //检查空串 3 if(str==NULL) {cout<<"string is NULL"; return -1;} 4 //跳过空格 5 while(isspace(*str)) 6 str++; 7 //读取符号位 8 int sign=1; 9 sign=(*str=='-')?(-1):1; 10 //跳过符号位,注意符号位可能没有 11 if(*str=='+'||*str=='-') 12 str++; 13 //字符串转换为整型数,注意将sum定义为无符号 14 unsigned int sum=0; 15 while(isdigit(*str)){ 16 sum=10*sum+(*str-'0'); 17 if(sum==INT_MAX+1 && sign==-1) 18 return INT_MIN; 19 if(sum>INT_MAX+1) {cout<<"out of memerory"; return -1;} 20 str++; 21 } 22 return sum; 23 }