当前位置:  开发笔记 > 编程语言 > 正文

String Token strtok函数逻辑

如何解决《StringTokenstrtok函数逻辑》经验,为你挑选了1个好方法。

我正在学习C标准函数的字符串操作.当我学习这些东西时,我面临着strtok函数和以下代码.

#include 
#include 

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

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

   /* walk through other tokens */
   while( token != NULL )
   {
      printf( " %s\n", token );
      token = strtok(NULL, s);
   }

   return(0);
}

我不明白为什么在while循环中,strtok与null一起使用?为什么在这里使用null?因为在strtok函数定义中有类似的东西(这个函数使用第二个参数将第一个参数字符串分解为一系列标记.)



1> Iharob Al As..:

因为它使用了一个static指向你正在使用的字符串的内部指针,所以如果你想让它在同一个字符串上运行,你只需要将它NULL作为第一个参数调用它,并让它使用它的内部指针.如果使用非null第一个参数调用它,那么它将使用新指针覆盖指针.

反过来,这意味着这strtok()不是可重入的.所以你通常只是在简单的情况下使用它,重入是重要的更复杂的情况(如多线程程序,或处理多个字符串)需要不同的方法.

一种方法是在POSIX系统上,您可以使用strtok_r()其中一个额外的参数作为" 内部 "指针使用.

查看本手册以了解更多信息.

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有