gpt4 book ai didi

c - 如何使用 strtok() token

转载 作者:行者123 更新时间:2023-12-04 11:41:58 27 4
gpt4 key购买 nike

根据此 descriptionstrtok() 通过给定的分隔符将字符串分隔为标记,返回指向字符串中找到的第一个标记的指针。所有后续 token 都需要通过循环遍历,如链接中给出的示例代码。

每个 token 是否以 NULL 自动终止?即我可以简单地将每个 token 分配给一个变量并使用它还是需要将 strncpy() 复制到分配的空间?

例如,这是否有效?

   char str[80] = "This is - www.tutorialspoint.com - website";
const char s[2] = "-";
char *token;

char *test[4];
int test_count = 0;
memset(test, 0x00, 4);

/* get the first token */
token = strtok(str, s);

/* walk through other tokens */
while( token != NULL ) {
test[test_count] = token;
test_count++;
token = strtok(NULL, s);
}

最佳答案

strtok() 适用于您的原始输入字符串,方法是 '\0' 替换 分隔符列表中字符的第一次出现。所以是的,这是您描述的预期用途。

旁注:

  • 不要写这样的东西
    const char s[2] = "-";

    只是使用
    const char s[] = "-";

    让编译器自动确定正确的大小
  • 在这种特殊情况下,只需将 "-" 传递给 strtok() (或将 #define 传递给 "-" )就可以了,体面的编译器识别相同的字符串文字并仅创建它们的一个实例。
  • 以防万一看到一些代码有帮助,这是 a simple strtok implementation 我不久前自己做的。
  • 关于c - 如何使用 strtok() token ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50220197/

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