我将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);
}
}
答案 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);
}