关于字符串转化为数字的问题
题目是写一个double类型的字符串转为数字的函数我的代码是
程序代码:#include<stdio.h>
bool isdigit(char n){
int k;
k=n;
if(k>=0&&k<=9)
return true;
else
return false;
}
bool isspace(char n){
if(n==' ')
return true;
else
return false;
}
double atof(char s[]){
double val,power;
int i,sign;
for(i=0;isspace(s[i]);i++);
sign=(s[i]=='-')?-1:1;
if(s[i]=='+'||s[i]=='-')
i++;
for(val=0.0;isdigit(s[i]);i++)
val=10.0*val+(s[i]-'0');
if(s[i]=='.')
i++;
for(power=1.0;isdigit(s[i]);i++){
val=10.0*val+(s[i]-'0');
power*=10;
}
return sign*val/power;
}
int main(){
printf("%d",atof("123.123"));
}但输出为0,不知道为什么?







