#include <stdio.h>
#include <string.h>
int fatoi(char str[])
{
int s=0,n,i=0,num=0;
n=strlen(str); //获取str 字符串长度
if(str[0]=='-') //如果第一个字符为“-” 负号
i=1; //将下标设置为1,表示第一个(下标为0的字符) 不处理 ,从第二个字符开始处理
if(n>10) //n为何>10 ,只处理长度为10的字符。
return 0; //表示,超过字符长度
for (;i<n;i++) //循法 i的初始值由上面if 来定,如果不为“-” 则为 0 ,否则为1
{
//num=(str[i]-48);//48求解释~不懂 其实字符在计算机中是一个整数值,如 字符'0' 整数值asc2码是 48 'a' 好像是97
num=str[i]-'0'; //上面等价于这句
s=s+num; //求和,获取第一位整数值
if(i<n-1) //各位不需要进位,所以 i<n-1 注意,n-1就是最后一位(下标从0开始,100个数,那么是0 到 99 最后一个数为 100-1) 不需要进位
s=s*10; //进位
}
if(str[0]=='-') //第一位为"-"符号 负号,
s=-s;
return s;
}
int main()
{
char sc[10]={"12367890"}; // 调试程序用的数据
int n;
n=fatoi(sc);
printf("\n%d",n);
getch();
return 0;
} |