/*需要考虑的情况有:
1.判空
2.正负号,只能出现在字符的第一位
3.非法的,即字符不是数字字符
4.如果字符串中出现'.',那么就变为了小数的情况了,那么定义为double,相对的数的处理就相对麻烦些,这里先不考虑
*/
int StrToInt(char * str)
{
long long num=0;
int flag=1;
if(str == NULL || *str == '\0')
{
return -1;
}
if(*str == '-')
{
flag=-1;
str++;
}
else if(*str == '+')
{
flag=1;
str++;
}
if(*str == '\0')
return -1;
char *ptmp=str;
while(*str != '\0')
{
if(*str >='0'&& *str <= '9')
{
num=num*10+(*str)-'0';
str++;
}
else
return -1;
}
num=flag*num;
return num;
}