还是错的,若输入的是负数没问题,正数就少了一位.
#include <stdio.h>
#include <string.h>
long fun ( char *p)
{ int i; long a=0, n=0,k=1;
for (i=strlen(p)-1;i>=0;i--)
if (p[i]=='-')
a=-a;
else
{ n=p[i]-'0';
n*=k;
k*=10;
a+=n;
}
return a;
}
void main() /* 主函数 */
{ char s[6];
long n;
printf("Enter a string:\n") ;
gets(s);
n = fun(s);
printf("%ld\n",n);
}