gpt4 book ai didi

c - C 中的 strtok 函数

转载 作者:太空宇宙 更新时间:2023-11-04 03:30:19 25 4
gpt4 key购买 nike

我有一个字符串,我必须从中提取日期。日期格式为 mm/dd/yyyy。因此,首先我用“”分隔标记,当我知道单个标记是一个日期时,我想在带有“/”参数的单个标记上使用 strtok。它在第一次约会时效果很好,但之后就无法返回以查找由“”分隔的标记(我明白为什么会这样,但我不知道如何在不创建所有日期字符串数组的情况下执行此操作首先,我想避免它)

最佳答案

您可以使用 strtok_r .

您应该为您想要同时执行的每个单独标记化声明一个 char* 变量。因此,声明一个用于按空格拆分,一个用于按斜线拆分。这是为了让 strtok 记住它走了多远。

strtok 更改为 strtok_r,并将这些变量之一的地址作为新的最后一个参数传递。

像这样:

char *spaceSplitState;
char *spaceToken = strtok_r(myString, " ", &spaceSplitState);
while(spaceToken)
{
char *slashSplitState;
char *slashToken = strtok_r(spaceToken, "/", &slashSplitState);
while(slashToken)
{
// do something
slashToken = strtok_r(myString, "/", &slashSplitState);
}
spaceToken = strtok_r(NULL, " ", &spaceSplitState);
}

关于c - C 中的 strtok 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37266763/

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