strtok(NULL,“ \ n”)是做什么的?

时间:2018-07-06 14:05:33

标签: c strtok

  

C库函数char * strtok(char * str,const char * delim)使用定界符delim将字符串str分成一系列标记。

放置s = strtok(NULL, "\n")会发生什么?用\n分割null是什么意思?

1 个答案:

答案 0 :(得分:1)

这并不意味着用\n分割NULL。

如果传递非NULL值,则要求它开始标记传递的字符串。

如果传递NULL值,则要求继续像以前一样标记相同的字符串(通常在循环中使用)。

示例:

int main(void)
{
   char *token, string[] = "a string, of,; ;;;,tokens";

   token = strtok(string, ", ;");
   do
   {
      printf("token: \"%s\"\n", token);
   }
   while (token = strtok(NULL, ", ;"));
}

结果:

token: "a"                                                                                                                                                   
token: "string"                                                                                                                                              
token: "of"                                                                                                                                                  
token: "tokens"