gpt4 book ai didi

c - 使用 strtok 转义字符

转载 作者:行者123 更新时间:2023-11-30 18:14:15 25 4
gpt4 key购买 nike

假设我从外部机器获得以下结果:

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_,=:()");

最佳答案

您正在搜索键/值对,但 strtok 只会为您提供值。为了做你想做的事,你需要 key (A、B、C、D 等)。

你不能用 strtok 来做到这一点。

如何使用 sscanf(psuedo):

find the opening bracket

do
sscanf(bufPos, "%c=%f,%n", &key, &value, &skip);
bufPos+=skip
repeat until buf[bufPos]==')';

关于c - 使用 strtok 转义字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17064477/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com