繁体   English   中英

分割char []并读取浮点数

[英]Split char[] and read floats

我有一个char buffer[128] ,看起来像:

-0.003662 0.996887 0.012818 1.010438 0.004120 1.025911

从C中的此char数组中获取每个浮点数的最简单方法是什么?

如果您知道字符串中有多少个浮点数,也可以考虑使用sscanf

char buffer[128] = "-0.003662 0.996887 0.012818 1.010438 0.004120 1.025911";
float nums[6];
int numFloats = sscanf(buffer, "%f %f %f %f %f %f",
                       &nums[0], &nums[1], &nums[2], &nums[3], &nums[4], &nums[5]);

U可以使用strtok()或strtok_r()来粘贴它-请参见strtok手册

像这样的东西:

void parse_numbers(char *buffer) {
    char *number = NULL;

   for (number = strtok(buffer, " "); number != NULL; number = strtok(NULL, " ")) {
       do_something_with_number(conert_string_to_float(number));
   }
}
float convert_string_to_float(char *number) {
    float return_value = 0;
    sscanf(number, "%f", &return_value);
    return return_value;
}

也许您应该看看:
Strtok的引用并比这个问题: 字符串到浮点转换?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM