簡體   English   中英

帶空字符串定界符的strtok

[英]strtok with empty string delimiter

我已經在一個庫中看到了以下代碼。 當空字符串作為分隔符傳遞時,strtok的行為是什么? 我可以看到struf調用后存儲在令牌變量中的任何buf包含的內容。

char buf[256] = {0};
char token = NULL;

...
...
while (!feof(filePtr))
{
  os_memset(buf, 0, sizeof(buf));
  if (!fgets(buf, 256, filePtr)) 
  {
    token = strtok(buf, "");
    ...
    ...
  }
}

strtok()首先查找不在定界符列表中的第一個字符,以找到令牌的開頭。 由於所有字符都不在定界符列表中,因此字符串的第一個字符將是標記的開頭。

然后,它在定界符列表中查找下一個字符,以找到令牌的結尾。 由於沒有定界符,因此它將永遠找不到它們,因此它在字符串的結尾處停止。

結果,空的定界符列表意味着整個字符串將被解析為單個標記。

為何有人這樣寫呢?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM