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

what does strtok(NULL, "\n") do?

The C library function char *strtok(char *str, const char *delim) breaks string str into a series of tokens using the delimiter delim.

当你输入 s = strtok(NULL, "\n") 时会发生什么?用 \n 拆分 null 是什么意思?

不是NULL被\n分割的意思。

如果您传递一个非 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"