在C中将字符串拆分为键值对

时间:2017-09-13 17:41:06

标签: c

我将UART上的字符串连接到微控制器并需要拆分它 成为一个关键值对。它必须对伪命令很健壮。到目前为止我所尝试的是以下内容,但这既不强大也不起作用。有什么建议吗?

让我们假设rx_buff的正常格式是“key,value”。

void setCommand() {
    token=strtok(rx_buff,",");
    strcpy(key, token);
    token=strtok(NULL,",");
    strcpy(val, token);

    if(key=="pos_ref") { //ofc I cannot compare a string like that
        pos_ref=atof(val);
    }
}

1 个答案:

答案 0 :(得分:0)

你可以使用sscanf。

  char input[] = "test,1.01";
  float val;
  char *key = malloc(strlen(input));

  if(sscanf(input, "%[^,],%f", key, &val) == 2) {
     printf("%s %f\n", key, val);
  }