c - 将具有十进制数的 char 数组转换为不同的浮点数
问题描述
您好,我对 C 编程相当陌生,我想转换一个看起来像的 char 数组
char numberlist[]="9,8 2,3 5,4 2,7 1,3";
到一个 9.8 的浮点数,我用过
float a;
a=atof(numberlist);
printf("%.1f\n",a);
但这给了我 9.0 作为回报,因为它是 9,8 而不是 char 数组中的 9.8。我怎么能很容易地解决这个问题,而不接触 char 数组?提前致谢 :)
解决方案
例如
char numberlist[]="9,8 2,3 5,4 2,7 1,3";
float convertFirstNumber(const char *str, char delim)
{
char z[256];
size_t index = 0;
while(*str && *str != delim)
{
if(*str == ',') z[index++] = '.';
else z[index++] = *str;
str++;
}
z[index] = 0;
return atof(z);
}
int main()
{
printf("%.1f\n",convertFirstNuber(numberlist, ' '));
}
推荐阅读
- python - 使用 groupby idcolumn 和 cumsum of timedelta 在时间序列中标记“trips”
- angular - 在使用响应式表单时将模板引用变量绑定到 ngModel
- postgresql - 如何在 Postgres 中获取简短的日期名称,例如“Mon”、“Tue”、“Wed”
- flutter - 将回调从模型传递到 Flutter 中的 GestureDetector 的语法
- ajax - Spring mvc使用AJAX一次上传多个文件不起作用
- c# - FFmpeg 停止进程 C#
- ssh - git 与其他 github 电子邮件一起提交?
- swift - 来自字符串插值的警告
- c# - 在 Assembly.GetExecutingAssembly 中执行代码的反射返回 null
- sql - Ms Access 查询计数优先