gpt4 book ai didi

c - 使用不同的分隔符 C 代码将 token 拆分两次

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

我试图用 2 个不同的定界符拆分一个标记,但在同一个字符串上使用 strtok() 两次会给我带来意想不到的结果。在第一个 strtok 之后,我想要:

0
1
2
3
4;5;6;7
8
9
10

在第二次 strtok 之后:

0
1
2
3
4
5
6
7
8
9
10

这是我的代码:

char *token;
x[0] = {0};
char str[1024] = "0,1,2,3,4;5;6;7,8,9,10;
token = strtok( str, ",');

printf("token is %s\n", token);


//Second 'split'

char *p = strtok (token, ';');
while (p != NULL)
{
array[z++] = p;
p = strtok (NULL, seps2);
}

for (int i = 0; i < count + 1; ++i)
printf("%s\n", array[i]);

最佳答案

strtok() 的第二个参数是一个字符串,每个字符在对字符串进行分词时都被视为定界符。

所以你可以让你的 strtok() 调用成为 strtok(str, ",;")

char s[]="0,1,2,3,4;5;6;7,8,9,10";
for(char *tk = strtok(s, ",;"); tk!=NULL; tk=strtok(NULL, ",;"))
{
printf("%s\n", tk);
}

这种情况下的输出是

0
1
2
3
4
5
6
7
8
9
10

请注意,strtok() 会修改原始字符串。

关于c - 使用不同的分隔符 C 代码将 token 拆分两次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56422585/

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