strtok是C語言上常常用來切割字串的方法。典型用法大概就長得像下面一樣。
char *token = strtok(str, del);
str為來源字串,del為想要用來做分割的字元。
看到了這樣的寫法,或許就會以為,那麼str就只是單純的傳進去而不做任何改變吧?!這是錯的想法!strtok會將傳進去的字串做完分割並回傳第一個token,但也同時str也會變得跟token一模一樣。看了Microsoft實做的strtok原始碼,就可以知道他怎麼做了。
所以下次要使用的時候,若str有想要再利用的需要,請先把str先複製一份做保存吧。
參考資料:
[1] [C/C++] string使用strtok的問題
[2] (筆記) 如何使用strtok()? (C/C++) (C)
沒有留言:
張貼留言