题目:输入一个表示整数的字符串,把该字符串转换成整数并输出。
例如输入字符串"345",则输出整数345
多考虑一些情况,如 345,前面有空格的, -345 +345前面有符号的,3#45,中间有非法字符的等等
bool valid = true;
#define INT_MAX ((int)0x7FFFFFFF)
#define INT_MIN ((int)0x80000000)
int StrToInt(char* str)
{
bool minus = false;
bool valid = false;
int result=0;
if(str==NULL) return 0;
char* p = str;
while(*p==' ')
p++;
if(*p == '-')
{
minus = true;
p++;
}
else if(*p=='+')
p++;
while (*p != '\0')
{
valid = true;
if(*p<0 || *p >9)
{
valid = false;
return 0;
}
result += result*10 + (*p -'0');
if(minus && result>INT_MAX+1 || !minus && result > INT_MAX)
{
valid = false;
return 0;
}
p++;
}
if(minus)
result = (-1)*result;
return result;
}