假设我从外部机器获得以下结果:
Value_1:(A=12.34, B=34.56, C=12.34, D=34.67)
我想用 strtok 来获取这些值,所以我有以下代码,它完全符合我的要求
ptr = strtok(buff, "Value_,=A:B:C:D()");
i = 0;
while (ptr != NULL)
{
if (i == 0)
strcat(out1, ptr);
if (i == 1)
strcat(out2, ptr);
if (i == 2)
strcat(out3, ptr);
if (i == 4)
strcat(out4, ptr);
if (i == 6)
strcat(out5, ptr);
ptr = strtok(NULL, "Value_,=A:B:C:D()");
i++;
}
printf("Results: %s, %s, %s, %s, %s\n", out1, out2, out3, out4, out5);
我现在的问题是,如果我有更多或更少的变量作为以下示例,我如何改进我的 ptr 变量以接收这些不同的变量值?
Value_1:(A=12.34, B=34.56, C=12.34, D=34.67, E=50.68)
Value_1:(A=12.34, B=34.56, C=12.34, D=34.67, E=43.96, F=12.45)
Value_1:(A=12.34, B=34.56, D=34.67)
更新
解决方案是我改变了
ptr = strtok(buff, "Value_,=A:B:C:D()");
用一个简单的
ptr = strtok(buff, "Value_,=:()");