将C字符数组读入双精度数

时间:2011-03-29 18:06:53

标签: c string cstring scanf

这是一个非常基本的问题,但我的C非常生疏,我需要复习。我有一个字符串,其格式完全相同:di ###.# ###.# ###

我想将第一个数字读入d1,将第二个数字读入d2,将第三个数字读入d3

int main ()
{
  double d1, d2, d3;
  char mystring[] = "di 123.4 567.8 901";

  //some code that I don't know

  return 0;
}
你能帮助我吗?我知道strtod()可以帮助解析数字,但是如何在开头跳过“di”?

1 个答案:

答案 0 :(得分:11)

您可以使用sscanf

sscanf(mystring, "di %lf %lf %lf", &d1, &d2, &d3);

在这一行中,您将提供一个格式字符串(基本上布置您希望数字的位置),然后按顺序提供您希望将结果放入的变量的地址。 &运算符会获取其应用的地址,在本例中为d1d2d3变量。

The reference supplied在C ++网站上,但适用于此功能)