比方說,我有一個從外部機器下面的結果:轉義字符
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)
UPDATE
的解決方案是,我改變
ptr = strtok(buff, "Value_,=A:B:C:D()");
用一個簡單的
ptr = strtok(buff, "Value_,=:()");
使用陣列來代替。 – 2013-06-12 11:38:38
把它們放在一個數組中;) –
順便說一句,你對'strtok()'是如何工作的理解是錯誤的。它將標記任何字符作爲分隔符。 – 2013-06-12 11:41:37