當您在C(而不是C++)中使用strtok()
函數時,每個標記是否自動以空字節結束?你將如何檢查?是否每個令牌strtok()在C中創建一個空字節結束?
如果我沒有記錯,strlen()
函數計算字符串的長度時不包括終止字節。
當您在C(而不是C++)中使用strtok()
函數時,每個標記是否自動以空字節結束?你將如何檢查?是否每個令牌strtok()在C中創建一個空字節結束?
如果我沒有記錯,strlen()
函數計算字符串的長度時不包括終止字節。
從手冊頁:
到strtok()
每次調用返回一個指向包含下一個令牌的空終止字符串。
所以簡短的回答是「是」。想想看。如果退貨沒有終止,那麼它不會被標記,因爲你不會得到標記,你會得到標記和字符串的其餘部分以及...
如前所述,答案是yes
。請注意0將修改爲原始字符串。該功能將用null character
替換令牌字符。看看https://ideone.com/u4W2PC
沒有這樣的事情不會以空字節結尾的字符串 - 如果它不以空字節結束,那麼它不是一個字符串。 – immibis