2020-07-29
1.题目描述
写一个函数 StrToInt,实现把字符串转换成整数这个功能。不能使用 atoi 或者其他类似的库函数。
2.题解
注意题目描述中特殊情况的判断即可。
3.代码
class Solution {
public:
int strToInt(string str) {
int len=str.size();
if (!len) return 0;
int i=0;
while (i<len&&str[i]==' ') i++;
if (i>=len) return 0; // 仅包含空格
long res=0;
int flag=1;
if (str[i]=='-'||str[i]=='+'||(str[i]>='0'&&str[i]<='9')){ // 第一个非空字符有效
if (str[i]=='-') flag=-1; // 符号位
else if (str[i]=='+') flag=1;
else res=str[i]-'0';
i++;
while (i<len){
if (str[i]>='0'&&str[i]<='9'){
res=res*10+str[i]-'0';
if (res>INT_MAX){
if (flag==1) return INT_MAX;
else return INT_MIN;
}
}else{
break;
}
i++;
}
res=res*flag;
}
return res;
}
};
本文介绍了一个不使用库函数atoi的字符串转整数的C++函数实现。通过解析输入字符串,处理符号和非数字字符,确保转换过程正确且避免溢出。

680

被折叠的 条评论
为什么被折叠?



