请问为什么这个函数可以把数字字符串转换为一个整数!

来源:百度知道 编辑:UC知道 时间:2024/07/02 08:25:41
例如输入字符串-999变为-999

long s=0,t;
int i=0,j,n=strlen(str),k,s1;
if(str[0]=='-')
i++;
for(j=i;j<=n-1;j++)
{
t=str[j]-'0';
s1=10;
for(k=j;k<n-1;k++)
t*s1;
s+=t;
}
if(str[0]=='-')
return -s;
else
return s;

迭代,原理如下,比如一个n位数
12345……n = (123……(n-1))*10+n
直接像下面这样写吧
for(j = i; j <= n-1; j++){
t = str[j] - '0';
s *= 10;
s += t;
}