将数字字符串转化为整型,实现atoi()函数功能
例如:输入:“123”
输出:123 (1100+210+3*1)
分析:
需要 字符串长度len
位数乘法 10^(len-1)
字符转数字 例如:‘5’-‘0’=5
//字符串长度
int my_len(const char *s){
int len=0;
while(s[len]){
len++;
}
return len;
}
//位数乘法
int e_pow(int c){
if(c==0){
return 1;}
if(c==1){
return 10;
}
int res=10;
int i;
for(i=1;i<c;i++){
res *=10;
}
return res;
}
//atoi
int my_atoi(const char *nptr){
int len = my_len(nptr);
int i; int value = 0;
for(i=0;i<len;i++){
//"123"中1是第0位
value += (nptr[i]-'0') * e_pow(len-i-1);
}
return value;
}
int main(){
char a[]="123";
int i;
i = my_atoi(a);
printf("%d\n",i);
return 0;
}