您的位置:首页 > 其它

把字符串转换成整数

2016-05-07 16:56 375 查看
bool g_InputIsInvalid=true;//默认输入不合法
//核心转换函数
int StrToIntCore(string str,bool bInputIsMinus){
int index=0;
int num=0;
while(str[index]!='\0'){
if(str[index]<'0'||str[index]>'9'){ //数字不合法
num=0;
break;
}else{
num=num*10+str[index]-'0';
//溢出 越界
if((!bInputIsMinus&&num>0x7fffffff)||
(bInputIsMinus&&num<(signed int)0x80000000)){
num=0;
break;
}
}
index++;
}
if(str[index]=='\0'){//到了末尾
g_InputIsInvalid=false;
if(bInputIsMinus)
num=0-num;//负数
}
return num;
}
//字符串转换成整数
int StrToInt(string str) {
int nIndex=0;
bool bInputIsMinus=false;//输入是否为负数标志
int num=0;
if(!str.empty()||str[0]!='\0'){//输入为空或者为""
if(str[nIndex]=='+'||str[nIndex]=='-'){
if(str[nIndex]=='-')//负数
bInputIsMinus=true;
nIndex++;//下标
}
if(str[nIndex]!='\0'){//不止一个'+'或者'-'
num=StrToIntCore(str.substr(nIndex,str.size()-nIndex),bInputIsMinus);//得到子数组
}
}
return num;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息