题目描述
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
输入描述:
输入一个字符串,包括数字字母符号,可以为空
输出描述:
如果是合法的数值表达则返回该数字,否则返回0
输入
+2147483647
1a33
输出
2147483647
0
思路:
逐个遍历字符串的每个字符,逐个转化,若遇到不是数字的字符,直接就返回0
实现:
class Solution {
public:
int StrToInt(string str) {
int len = str.length();//字符串的长度
if(len==0)
{
return 0;
}
int i = 0;
int num = 0;
while(i<len)
{
if(i==0&&(str[i]=='+'||str[i]=='-'))
{
i++;
continue;
}
if(str[i]<'0'||str[i]>'9')
{
return 0;
}
num = num*10+(str[i]-'0');
i+=1;
}
if(str[0]=='-')
{
num = 0-num;
}
return num;
}
};
finished!!!