在网上看到微软的面试题目,看到别人的解答都很繁琐,其实Dennis M. Ritchie已经给了个非常精辟的例子。下面的main函数是我加上测试用的!
#include
void main(int argc, char* argv[])
{
int num = 0;
num = stoi(argv[1]);
printf("%d\n",num);
}
int atoi(char s[])
{
int i=0,num=0,sign=0;
for(i=0;isspace(s[i]);i++)
;
sign = (s[i]=='-')?-1:1;
if(s[i]=='+' || s[i]=='-')
i++;
for(;isdigit(s[i]);i++)
num = num*10 + (s[i]-'0');
return num*sign;
}