#include <stdio.h>
long atol(char *s)
{
long r = 0;
int neg = 0;
switch(*s)
{
case '-':
neg = 1;
/* 这里没有break */
case '+':
s++;
break;
}
while(*s >= '0' && *s <= '9')
{
int n = *s++ - '0';
if(neg)
n = -n;
r = r * 10 + n;
}
return r;
}
int main()
{
char s[] = "123456";
printf("%ld", atol(s));
return 0;
}
运行截图: