#include<iostream>
using namespace std;
int strToInt(const char* str)
{
int num = 0;
int t = 1;
while(*str != 0)//字符串结束
{
if(*str < '0' || *str > '9')//若元素不是数字字符
{
if((str[0] == '-' || str[0] == '+') && strlen(str) == 1)//若只有加号或减号
{
return 0;
}
if(str[0] == '-')//若首元素是负号
{
t = -1;
++str;
}
else if(str[0] == '+')//若首元素是正号
{
++str;
}
else
return 0;
}
num = num * 10 + *str - '0';//将数字字符转换为整数
++str;
}
if(num * t < INT_MIN)//若超出int的界限
return 0;
else if(num * t > INT_MAX)
return 0;
else
return num * t;
}
int main()
{
char str[] = "2500";
cout << strToInt(str) << endl;
}
《剑指offer》——字符串转换为整数
最新推荐文章于 2020-06-11 10:37:27 发布