版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/z_x_m_m_q/article/details/84786357
题目描述:
将一个字符串转换成一个整数(实现Integer.valueOf(string)的功能,但是string不符合数字要求时返回0),要求不能使用字符串转换整数的库函数。 数值为0或者字符串不是一个合法的数值则返回0。
输入描述:
输入一个字符串,包括数字母符号,可以为空。
输出描述:
如果是合法的数值表达则返回该数字,否则返回0。
C++代码:
class Solution {
public:
int StrToInt(string str) {
int size = str.size();
if(size == 0)
return 0;
int index = 0;
int lebal = 1;
if(str[0] == '+')
{
lebal = 1;
++index;
}
if(str[0] == '-')
{
lebal = -1;
++index;
}
int num = 0;
int tmp = 1;
while(index < size)
{
if(str[index] < '0' || str[index] > '9')
{
return 0;
break;
}
tmp = str[index]-'0';
for(int i = 0;i < size-index-1;++i)
{
tmp *= 10;
}
num += tmp;
++index;
}
return lebal*num;
}
};