看板 C_and_CPP 關於我們 聯絡資訊
最近在測試strtok的功能,發現有個疑問 程式碼: char s[] = "This is a string"; char *tmp; tmp = strtok(s, "T"); 疑問的地方: strtok會記錄字串分割起頭為 &s[0], 然後把分界字元改成\0, 因此這個字串應該變成了"\0his is a string" 分割起頭位置改為 &s[1], 並且會把上次分割起頭的位址傳給tmp, 我的疑問是為什麼tmp在分割後的值不是"\0", 而是"his is a string"呢? 謝謝~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.195.178
uest:你已經回答自己的問題了不是嗎? ==> 分割起頭位置改為$s[1] 05/02 13:01
Schematic:但是若我把敘述改為 tmp = strtok(s, " "); 分割起頭則 05/02 21:44
Schematic:改為$s[5],回傳的是上一個分割起頭,所以結果是"This" 05/02 21:45