gpt4 book ai didi

c++ - 同时标记多个字符串

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:15:34 25 4
gpt4 key购买 nike

假设我有三个 C 风格的字符串,char buf_1[1024]char buf_2[1024]char buf_3[1024]。我想对它们进行标记,然后对所有三个标记中的第一个标记进行操作,然后对所有三个标记中的第二个标记进行相同操作,依此类推。显然,我可以调用 strtok 并从每次我想要一个新 token 时开始。或者,预处理所有标记,将它们粘贴到三个数组中,然后从那里开始,但我想要一个更简洁的解决方案,如果有的话。

最佳答案

听起来你想要 strtok 的可重入版本,strtok_r它使用第三个参数来保存它在字符串中的位置,而不是函数中的静态变量。

下面是一些示例框架代码:

char buf_1[1024], buf_2[1024], buf_3[1024];
char *save_ptr1, *save_ptr2, *save_ptr3;
char *token1, *token2, *token3;

// Populate buf_1, buf_2, and buf_3

// get the initial tokens
token1 = strtok_r(buf_1, " ", &save_ptr1);
token2 = strtok_r(buf_2, " ", &save_ptr2);
token3 = strtok_r(buf_3, " ", &save_ptr3);

while(token1 && token2 && token3) {
// do stuff with tokens

// get next tokens
token1 = strtok_r(NULL, " ", &save_ptr1);
token2 = strtok_r(NULL, " ", &save_ptr2);
token3 = strtok_r(NULL, " ", &save_ptr3);
}

关于c++ - 同时标记多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9472865/

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