/*
5.写一个函数,检查字符是否是整数,如果是,返回其整数值。
(或者:怎样只用4 行代码编写出一个从字符串到长整形的函数?)
ANSWER
Char or string?
have done atoi;
*/
int MyAtoi(char* str)
{
int res=0;
for(int i=0;str[i]!='\0';i++)
res=res*10+str[i]-'0';
return res;
}
//考虑可能是一个负数。或者是数字前面有空格
int MyAtoi1(char* str)
{
assert(str!=NULL);
int res=0;
int i=0;
while((str[i]!='\0')&&(str[i]==' '))
i++;
int sign=0;//默认是正数
if(str[i]='-')//如果是负数
{sign=1;i++;}
for(int k=i;str[k]!='\0';k++)
{
if(str[k]>='0'&&str[k]<='9')
res=res*10+str[k]-'0';
else
throw std::exception("not a number!");
}
return sign==0?res:res*(-1);
}
void MyAtoiTest()
{
char str[]="12456";
cout<<str<<endl;
int res=MyAtoi(str);
cout<<res<<endl;
}
void MyAtoi1Test()
{
char str[]=" -16245";
cout<<str<<endl;
int res=MyAtoi1(str);
cout<<res<<endl;
}